bry*_*yan 10 html javascript css jquery animation
我有以下图片:
我正在使用以下代码(jsfiddle示例):
$(function() {
$("#link-gif").hover(
function() {
/* starting animation */
$(this).css("background-image", "url('http://i.imgur.com/HhsBws5.gif')");
},
function() {
/* ending animation */
$(this).css("background-image", "url('http://i.imgur.com/WLFzz3S.gif')");
}
);
});Run Code Online (Sandbox Code Playgroud)
#link-gif {
width:150px;
height:40px;
border:1px solid #39464E;
background-image:url('http://i.imgur.com/YgLJoVH.png'); /*static*/
background-size:contain;
background-repeat:no-repeat;
background-position:bottom center;
cursor:pointer;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="link">
<div id="link-gif"> </div>
</div>Run Code Online (Sandbox Code Playgroud)
总而言之,我想要发生的是:我首先加载静态图像.当有人悬停在上面时#link-gif,开始动画gif开始,当你将其悬停时,结束动画开始.
出于某种原因,当您将鼠标悬停在图像上时,图像不会生成动画.它只是到了gif的结尾.有谁知道为什么会发生这种情况?
发生这种情况是因为图像已被缓存。尝试在 gif 末尾添加一些动态值,例如时间。检查我对您的代码所做的修改。我在 img 路径中添加了当前时间。
$(function() {
$("#link-gif").hover(
function() {
/* starting animation */
var url = "url('http://i.imgur.com/HhsBws5.gif?time=" + new Date().getTime() + "')";
$(this).css("background-image", url);
},
function() {
/* ending animation */
var url = "url('http://i.imgur.com/WLFzz3S.gif?time=" + new Date().getTime() + "')";
console.log(url);
$(this).css("background-image", url );
}
);
});Run Code Online (Sandbox Code Playgroud)
#link-gif {
width:150px;
height:40px;
border:1px solid #39464E;
background-image:url('http://i.imgur.com/YgLJoVH.png'); /*static*/
background-size:contain;
background-repeat:no-repeat;
background-position:bottom center;
cursor:pointer;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="link">
<div id="link-gif"> </div>
</div>Run Code Online (Sandbox Code Playgroud)