【发布时间】:2012-12-01 10:33:20
【问题描述】:
我有一个开门动画(41 帧),我想使用 javaScript 让它在鼠标悬停时打开,我希望它回到第 1 帧 onmouseout。我不认为我在 onmouseout 部分做得很正确。提前感谢您的帮助!
HTML:
<div onmouseover="startAnimation()" onmouseout="stopAnimation()" id="door2"></div>
<div id="door">
<img src="images/Animation_Door/0001.png">
<img src="images/Animation_Door/0002.png">
<img src="images/Animation_Door/0003.png">
...etc...(41 frames)
css:
#door img{
display: none;
}
#door img:first-child {
display: block;
}
javaScript:
function startAnimation() {
var frames = document.getElementById("door").children;
var frameCount = frames.length;
for (i=0; i<41; i++) {
setTimeout(function(){
frames[i % frameCount].style.display = "none";
frames[++i % frameCount].style.display = "block";
}, 50*i);
}
}
function stopAnimation() {
var frames = document.getElementById("door").children;
var frameCount = frames.length;
for (i=0; i<1; i++){
setTimeout(function(){
frames[++i % frameCount].style.display = "none";
frames[i % frameCount].style.display = "block";
}, 50*i);
}
}
这里有一个链接: http://www.reveriesrefined.com/test
【问题讨论】:
-
链接返回 403 禁止状态
-
stopAnimation 中的 for 循环不应该有“i
-
我似乎无法修复链接,但如果您只是将其粘贴到浏览器中,它应该可以工作。
-
当 stopAnimation 中的 for 循环有 i
-
它直接进入第一帧,对我来说没有动画。你想改变什么?
标签: javascript animation settimeout onmouseover onmouseout