Javascript 悬停时跨浏览器动画gif&;鼠标离开时反转

Javascript 悬停时跨浏览器动画gif&;鼠标离开时反转,javascript,jquery,html,css,animation,Javascript,Jquery,Html,Css,Animation,我有以下图片: || 我正在使用以下代码(): $(函数(){ $(“#链接gif”)。悬停( 函数(){ /*启动动画*/ $(this).css(“背景图像”,“url”()http://i.imgur.com/HhsBws5.gif')"); }, 函数(){ /*结束动画*/ $(this).css(“背景图像”,“url”()http://i.imgur.com/WLFzz3S.gif')"); } );

我有以下图片:

||

我正在使用以下代码():

$(函数(){
$(“#链接gif”)。悬停(
函数(){
/*启动动画*/
$(this).css(“背景图像”,“url”()http://i.imgur.com/HhsBws5.gif')");
},
函数(){
/*结束动画*/
$(this).css(“背景图像”,“url”()http://i.imgur.com/WLFzz3S.gif')");
}                         
);                  
});
#链接gif{
宽度:150px;
高度:40px;
边框:1px实心#39464E;
背景图像:url('http://i.imgur.com/YgLJoVH.png“);/*静态*/
背景尺寸:包含;
背景重复:无重复;
背景位置:底部中心;
光标:指针;
}

发生这种情况是因为图像已缓存。尝试在gif结尾添加一些动态值,如时间。检查我对你的代码所做的修改。我在img路径上添加了当前时间

$(函数(){
$(“#链接gif”)。悬停(
函数(){
/*启动动画*/
var url=“url('http://i.imgur.com/HhsBws5.gif?time=“+新日期().getTime()+”)”;
$(this.css(“背景图像”,url);
},
函数(){
/*结束动画*/
var url=“url('http://i.imgur.com/WLFzz3S.gif?time=“+新日期().getTime()+”)”;
console.log(url);
$(this.css(“背景图像”,url);
}                         
);                  
});
#链接gif{
宽度:150px;
高度:40px;
边框:1px实心#39464E;
背景图像:url('http://i.imgur.com/YgLJoVH.png“);/*静态*/
背景尺寸:包含;
背景重复:无重复;
背景位置:底部中心;
光标:指针;
}


你无法在任何浏览器中真正控制动画GIF。@Turnip一开始它对我来说非常有效,但如果我回到JSFIDLE,它就会停止工作,一直持续到动画的结尾。啊,是的。代码片段可以很好地工作,但不能在JSFIDDLE上运行。JSFIDDLE为您提供了缓存,这是否按照您希望的方式工作->大多数浏览器中都存在一个bug,已经存在了近二十年,它可能已经不再是一个bug,而是一个“功能”,在重新加载时,在CSS中设置为背景的缓存动画GIF不会重新启动,它们总是停留在动画的末尾。显然,这与大多数浏览器使用的动画框架的缓存干扰(服务器头、HTTPS等)有关。由于没有人再真正使用动画GIF了,所以这可能不是一个需要解决的问题。