【发布时间】:2017-08-22 22:10:50
【问题描述】:
我正在使用以下技术来预加载悬停按钮时用作 CSS 背景图像的图像:
#preload_area {
background-image:
url(../images/image1.svg),
url(../images/image2.svg);
width: 0px;
height: 0px;
display: inline;
}
还尝试通过这种方式仅预加载一张图片:
#preload_area {
background: url(../images/image1.svg) -9999px -9999px no-repeat;
}
这些都不起作用:硬刷新后,第一次悬停按钮时,我仍然看到闪烁(对应于加载悬停图像)。显然在第一次之后就不再眨眼了。
为什么不能在 Chrome 上运行? (它确实适用于 Firefox)
【问题讨论】:
-
第一个代码示例没有理由不起作用。第二个应该只有
background而不是background-image- 请参阅developer.mozilla.org/en-US/docs/Web/CSS/… -
嗯,它没有。我在 Windows 10 上使用 Chrome 57.0.2987.110(64 位)。感谢您的评论,我已纠正(尽管仍然无法在 Chrome 上运行)。在 Firefox 上运行良好。
-
@drake035 我认为 Chrome 实现了某种 DOM 虚拟化,其中仅呈现可见元素,所以我不确定您是否能够解决此问题,除非您将图像放入预加载时的可见区域,这当然是不希望的。
-
改用精灵并通过背景位置进行切换...
-
第一个 sn-p 代码在 Chrome 上适用于我......也许如果你发布你的整个代码我们可以知道问题是什么
标签: css google-chrome preloading