gpt4 book ai didi

css - 用另一个图像(CSS)替换它时防止悬停时图像闪烁

转载 作者:行者123 更新时间:2023-11-28 11:10:24 25 4
gpt4 key购买 nike

当我在页面加载后第一次将光标悬停在 Logo 上时,它开始快速闪烁大约一秒钟。我考虑过使用 sprite,但我不想将 Logo 设置为背景图像 - 我已经有一个了。这是我的 CSS 代码:

<!DOCTYPE HTML>
<head>
<style>
html {
background-image:url('backgroundimage.jpg');
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
background-size: 100%;
-webkit-filter: brightness(0.6);
-moz-filter: brightness(0.6);
-o-filter: brightness(0.6);
-ms-filter: brightness(0.6);

}

#logo {
position: fixed;
top: 50%;
left: 50%;
margin-top: -250px;
margin-left: -250px;

}

#logo:hover
{
content: url('logobeforehover.png');
}
</style>
</head>
<body>
<div id="logo">
<img src="logoafterhover.png"/>
</div>
</body>
</html>

最佳答案

总是会出现一些闪烁,因为用户的浏览器必须从服务器加载图像。 TCP 和 HTTP 有一些开销,您可以合理预期的最快(即使是非常小的图像)大约为 100-200 毫秒。这通常很明显。实际上,时间通常更长。

可能的解决方案:

  • 将图片放在页面的某处,但不显示它。经常使用设置display: none,但是that doesn't seem reliable anymore ;或者,您可以添加 widthheight1pxz-index 的图像-1。恕我直言,这很丑陋。请注意,这也会增加初始页面加载。
  • 不要使用 CSS,而是使用 Javascript 来切换图像。这样您就可以预加载图像,并在加载和准备就绪时更改它,例如:

    var img = new Image();
    img.onload = function() {
    $('#logo').attr('src', $(this).attr('src'));
    };
    img.src = 'example.com/image'
  • 使用 CSS Sprite ,您已经提到您不想这样做,但为了完成起见,我会列出它。恕我直言,这是最好的解决方案。

关于css - 用另一个图像(CSS)替换它时防止悬停时图像闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21805943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com