【发布时间】:2012-03-14 18:40:24
【问题描述】:
我正在处理的网站有一个列表ul,其中包含超过 100 (li) 个要点。它们中的每一个都链接到另一个 html 站点。
每当您将鼠标悬停在其中一个链接上时,我都想显示图像预览。图像应从左侧缓慢滑入。
由于每个预览图像的大小高达 40kb,我实际上不想预加载图像。 预防它的最佳方法是什么? 如果可能的话,我想只通过 CSS 来做这件事,而不是 JS。
我的想法:
a) 默认状态:<img>-tag 和 display:none; 悬停状态:将其设置为 display:inline。问题:transition 不适用于 display :(.
b) 只需使用div 代替并为每个li 编写一个CSS 规则,以便在悬停时将相应的背景图像与预览图像分配给它。
这会阻止图像的预加载吗?
【问题讨论】:
-
不,您需要 JS 来执行此操作。加载 CSS 图像,无论“显示”如何。
-
如果您的 CSS 知道图像的路径,浏览器可能会决定继续并预加载它。仅在悬停时显示背景图像似乎会阻止预加载,但仅在第一次加载时;之后,大多数浏览器都会缓存它。请记住,
li:hover在 IE6 中不起作用,因此希望您不要尝试将其作为目标浏览器。 -
只针对最新的 IE、Firefox 和 Chrome 版本。