Javascript 在所有旋转完成后,如何阻止html图像旋转?
我有这样一个功能,每当用户单击图像时,它都会尝试旋转图像。如果用户单击了一次图像,但没有再次单击它,它会像我预期的那样在一次尝试后停止旋转。然后他们可以再次单击图像,图像将再次旋转 但是,如果他们点击一次图像,然后再点击它,它会加速,这也是正确的行为。但它永远不会停止旋转Javascript 在所有旋转完成后,如何阻止html图像旋转?,javascript,jquery,html,Javascript,Jquery,Html,我有这样一个功能,每当用户单击图像时,它都会尝试旋转图像。如果用户单击了一次图像,但没有再次单击它,它会像我预期的那样在一次尝试后停止旋转。然后他们可以再次单击图像,图像将再次旋转 但是,如果他们点击一次图像,然后再点击它,它会加速,这也是正确的行为。但它永远不会停止旋转 if(degree === 361){ clearInterval($this.data('rotating')); $this.data('rotating', false);
if(degree === 361){
clearInterval($this.data('rotating'));
$this.data('rotating', false);
$this.data('degree', 0);
return;
}
这段代码应该在第二次旋转结束后停止旋转,但它只是无限期地继续旋转。如何使其加速,然后在每次单击最后一次旋转完成后停止旋转?尝试添加以下代码以停止旋转:
if($this.data('rotating')) {
$this.css({ transform: 'rotate(' + degree + 'deg)'});
$this.data('degree', ++degree)
}
这是一把小提琴:
希望这有帮助。尝试添加以下代码以停止旋转:
if($this.data('rotating')) {
$this.css({ transform: 'rotate(' + degree + 'deg)'});
$this.data('degree', ++degree)
}
这是一把小提琴:
希望这有帮助。这是您的问题:
单击它时,将setInterval
返回的值赋给元素的数据属性。这会清除以前存储的任何setInterval
值,因此它们永远不会被清除。当你开始一个新的程序时,你需要把它们全部存储起来,而不是把最后一个程序都干掉。您可以通过将每个新值推送到数组中,然后弹出数组的最后一个值,并在每次需要清除时清除该值来完成此操作
(小提琴:)
这是你的问题:
单击它时,将setInterval
返回的值赋给元素的数据属性。这会清除以前存储的任何setInterval
值,因此它们永远不会被清除。当你开始一个新的程序时,你需要把它们全部存储起来,而不是把最后一个程序都干掉。您可以通过将每个新值推送到数组中,然后弹出数组的最后一个值,并在每次需要清除时清除该值来完成此操作
(小提琴:)
使用clearInterval函数
if(degree === 161){
clearInterval($this.data('rotating'));
$this.data('rotating', false);
$this.data('degree', 0);
return clearInterval(this);
}
使用clearInterval函数
if(degree === 161){
clearInterval($this.data('rotating'));
$this.data('rotating', false);
$this.data('degree', 0);
return clearInterval(this);
}
试试这个
if(degree==359)
Nope仍然显示相同的行为。试试这个if(degree==359)
Nope仍然显示相同的行为。哈?他在用它,你不能用“这个”来清除它。你的小提琴坏得超出想象。。。图像中途停止请参见条件。。。“if(degree==161){”早上好,今天天气很好。哈?他正在用它,而你不能用“this”清除它。你的小提琴被打破了,超出了想象…图像中途停止查看状态…”if(degree==161){”早上好,今天是美好的一天。太好了,谢谢你的帮助和精彩的解释。太好了,谢谢你的帮助和精彩的解释。这将防止它无限旋转,但每次单击仅旋转一次。这将防止它无限旋转,但每次单击仅旋转一次。