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){”早上好,今天是美好的一天。太好了,谢谢你的帮助和精彩的解释。太好了,谢谢你的帮助和精彩的解释。这将防止它无限旋转,但每次单击仅旋转一次。这将防止它无限旋转,但每次单击仅旋转一次。