javascript - 在鼠标悬停时启动 GIF,否则暂停?

标签 javascript html css tumblr animated-gif

因此,我试图将这些图像放在我正在构建的静态页面的侧边栏上,但是当您将鼠标悬停在上面时,它们会以 gif 动画形式呈现。我当前的设置是让 background-image css 属性图像通常是静态 jpg,但在鼠标悬停时更改为动画 gif。这是代码,可以更好地说明我的观点。

CSS:

#segments li a.fnb {
background-image: url(http://dl.dropbox.com/u/8808984/2.0/SegmentThumbs/fnb%21-small.jpg); /*fallback*/
}

#segments li a.whhu {
background-image: url(http://dl.dropbox.com/u/8808984/2.0/SegmentThumbs/still.jpg);
}

#segments li a.fnb:hover {
background-image: url(http://dl.dropbox.com/u/8808984/2.0/SegmentThumbs/549933.gif);
}

#segments li a.whhu:hover {
background-image: url(http://dl.dropbox.com/u/8808984/2.0/SegmentThumbs/549841.gif);
}

其他的我就不多说了,我的观点没有必要。

HTML:

<ul id="segments">
    <li><a href="http://collabprojekt.com/tagged/fnb!" class="fnb"></a></li>
    <li><a href="http://collabprojekt.com/tagged/whhu" class="whhu"></a></li>
</ul>

站点是http://tcptest.tumblr.com ,请查看带有图像的左侧栏以了解其当前的工作方式。

这行得通,但我唯一的问题是,对于有史以来的第一次悬停,它必须加载 gif,这会导致在加载 gif 时框变为空白的一小段时间。虽然这不是什么大不了的事,但看起来真的很不专业。

我尝试了这个使用 JS 的想法 ( link ),但它失败了。

所以我想我的问题是:是否有更好的方法使用 CSS 或什至任何其他语言来执行此操作,这样我就不会得到这个随机的空白时刻?

最佳答案

您可以将图像包含在页面其他位置的 IMG 元素中,并将它们放在隐藏的容器中(display:nonevisibility:hidden 在 CSS 中)所以它们在页面首次加载时加载,但不可见。这应该用于缓存悬停图像客户端,这样当浏览器请求 CSS 中引用的 :hover 图像时,您就不会得到延迟。

我倾向于在 IMG SRC 属性中使用与您在 CSS 中使用的相同的文件路径,以确保浏览器将其视为相同的图像。

那是如果 JavaScript 解决方案不适合您。

从你上面的例子...

<!-- Cache Images -->
<div style="display:none">
<img src="http://dl.dropbox.com/u/8808984/2.0/SegmentThumbs/549933.gif" alt="">
<img src="http://dl.dropbox.com/u/8808984/2.0/SegmentThumbs/549841.gif" alt="">
</div>

编辑:

动画 GIF 有一个额外的问题,可能会影响您,具体取决于动画...无论动画(悬停)图像是否预加载,一旦加载,浏览器倾向于在后台播放图像,而不管它当前是否显示。因此,离开图像并再次返回会导致动画“跳”到其当前位置,而不是从离开图像时动画到达的位置继续。长动画比短动画更引人注目。

关于javascript - 在鼠标悬停时启动 GIF,否则暂停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524220/

相关文章:

javascript - 获取json格式的表格数据

javascript - 当替换字符串中包含正则表达式时,为什么 str.replace() 的行为会很奇怪?

javascript - 关于 anchor 标记的文本更改,使用 JavaScript 显示/隐藏 div

javascript - 在 Javascript 中使用正则表达式仅检索匹配字符串的一部分

javascript - 如果不满足最大长度,如何重新启用屏幕键盘

html - 像 float :top? 这样的东西

html - 回退 css 网格不工作

html - 标题 <h1> 中 <br> 之后的其他字体大小

PHP 检查报告未使用的 CSS 选择器。它由 PHP 回显标签使用

javascript - 显示和隐藏带链接的 div