asp .net 背景图片在回发时闪烁

asp .net background image flickering on postback

我的背景图片在每次回发时都会重新加载。所以每次按下按钮时都会引起闪烁。它出现在 Internet Explorer(测试版本 11.0.9600.17843)和 Chrome(测试版本 45.0.2454.93 m)中。在 Firefox(测试版本 34.0.5)中它可以工作。到目前为止,我还没有测试过其他浏览器。到目前为止,这是背景图片的代码:

<style type="text/css">
body 
{
   background-image:  url(/Img/Besuchermanagement_1920_1080.jpg);

    background-attachment: inherit;
    background-repeat: no-repeat;

    background-position: center;
    background-size: 100% 100%;
    min-height: 925px;

    opacity: 0.9
}       
</style>

当我读到一个 IE 闪烁错误时,我也添加了那些元标记:

<meta http-equiv="Page-Enter" content="blendTrans(Duration=0.2)" />
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0.2)" />

但这对我不起作用。

所以我添加了一张图片并通过这个css

将其设置为不可见
.backgroundImageFix 
{
    width: 1%;
    height: 1%;
    opacity: 0.0
}

<asp:Image ID="Image1" runat="server" EnableTheming="True" ImageAlign="Bottom"  CssClass="backgroundImageFix"
    ImageUrl="~/Img/Besuchermanagement_1920_1080.jpg" />

现在我再也没有任何闪烁问题了。

但我不明白为什么添加图像会阻止背景图像在回发时重新加载。我希望任何人都可以向我解释一下,也许会给我一个更好的解决方案。

在 post 期间页面重新加载,因为它有一个生命周期,这使得页面重新加载,这是闪烁的 但要避免这种情况,您可以在 asp.net

中使用更新面板控件
 <asp:ScriptManager ID="ScriptManager1" runat="server" />

 <asp:UpdatePanel id="UpdatePanel1" runat="server">
     <ContentTemplate>

              //your code here

      </ContentTemplate>
 </asp:UpdatePanel>

这应该可以防止背景图像闪烁

你有几个选择

您应该使用更新面板 - 它只会 "postback" 面板内的所需数据并在更新面板内重绘部分屏幕 - 阅读 this 以了解微软如何ajax 可以帮到你。我认为您无论如何都应该使用更新面板,因为它是更好的用户体验。

也有可能是body的底色没有设置导致的。然后它将默认为透明,页面将为白色。您可以尝试将背景颜色设置为与图像相似的颜色。我已经看到这减少了过去页面上的闪烁。