Javascript 如何在屏幕上移动动画
我已经制作了一个吃豆人张开和合上嘴巴的动画,但我也想让它在屏幕上移动。我使用了setTimeout(),可以在屏幕上显示一个图像,但不能显示实际的动画。如何使用纯JS实现这一点 这是我的HTMLJavascript 如何在屏幕上移动动画,javascript,css,html,webpage,Javascript,Css,Html,Webpage,我已经制作了一个吃豆人张开和合上嘴巴的动画,但我也想让它在屏幕上移动。我使用了setTimeout(),可以在屏幕上显示一个图像,但不能显示实际的动画。如何使用纯JS实现这一点 这是我的HTML <body> <div id="animation"> <img id="pacManImg" src="pacMan1.png" width="50" height="50" /> <img id="pacManImg" src="pacM
<body>
<div id="animation">
<img id="pacManImg" src="pacMan1.png" width="50" height="50" />
<img id="pacManImg" src="pacMan2.jpg" width="50" height="50" />
</div>
<button onclick="startAnimation()"> Start</button>
</body>
只需使用
i
增加left
属性:
setInterval(function() {
frames[i % frameCount].style.display = "none";
frames[++i % frameCount].style.display = "block";
document.getElementById("animation").style.left = i + "px";
});
注意,这需要
位置:绝对代码>在CSS中。类似于帧[i%frameCount].style.left=frames[i%frameCount].style.left.slice(0,-2)+“px”
,如果帧的位置绝对超过我一毫秒(:我尝试了你的建议,但它不会移动(如在屏幕上行走)。这就是我在CSS中的动画img{显示:无;位置:绝对;}#动画img:第一个子{位置:绝对;显示:块;}这是正确的吗?不,你需要#动画
具有位置:绝对;
非常感谢你的帮助。我还想知道,有没有一种方法可以清除间隔,停止动画,使用你提供的代码示例?我已经在类似var timer=setInterval的情况下完成了,然后调用timer来清除它
setInterval(function() {
frames[i % frameCount].style.display = "none";
frames[++i % frameCount].style.display = "block";
document.getElementById("animation").style.left = i + "px";
});