gpt4 book ai didi

javascript - Javascript OnMouseOver 动画

转载 作者:行者123 更新时间:2023-12-01 01:35:43 25 4
gpt4 key购买 nike

var positioner = 0;
var ames = setInterval(animate, 200);

function animate() {
if(positioner <= 1000){
document.getElementsByTagName('img')[0].style.backgroundPosition='-'+positioner+'px';
positioner += 256;
} else {
document.getElementsByTagName('img')[0].style.backgroundPosition='-'+positioner+'px';
positioner = 0;
}
}
img { 
background-image: url('https://cdn-images-1.medium.com/max/1600/1*WhDjw8GiV5o0flBXM4LXEw.png');
background-repeat: no-repeat;
}
<img width="256px" height="256px" onmouseover="animate()"/>

这是我的代码,目前它正在自动移动,我想让它只是移动 onMouseOver!在我看来,如果可以将 setInterval 放入 animate() 函数中,那么这个问题就可以解决,但是如何将 setInterval 放入函数中??

最佳答案

在这里,最好的方法是将 mouseOvermouseOut 作为监听器处理,并将 setInterval 存储在变量中,这样您就可以稍后清除。

var positioner = 0;
var ames;
var img = document.getElementsByTagName('img');

img[0].addEventListener('mouseover', () => {
ames = setInterval(animate, 200);
});

img[0].addEventListener('mouseout', () => {
if (ames)
window.clearInterval(ames);
});

function animate() {
if (positioner <= 1000) {
img[0].style.backgroundPosition='-'+positioner+'px';
positioner += 256;
} else {
img[0].style.backgroundPosition='-'+positioner+'px';
positioner=0;
}
}
img { 
background-image: url('https://cdn-images-1.medium.com/max/1600/1*WhDjw8GiV5o0flBXM4LXEw.png');
background-repeat: no-repeat;
}
<img width="256px" height="256px"/>

关于javascript - Javascript OnMouseOver 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52845861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com