繁体   English   中英

ClearInterval()不会停止我的旋转功能

[英]ClearInterval() won't stop my rotate function

我正在使用jQuery Rotate插件,以动画方式将图像旋转90度,然后停止旋转。

我的问题是,即使调用clearInterval()之后,它也不会停止旋转。

$(document).ready(function() {
    var finalAngle;
    var intval = setInterval(function func() 
    {
      $("#myimg").rotate(1);
      if(typeof func.angle == 'undefined' )
      {
           func.angle = 0;
      }

      func.angle += 1;

      finalAngle = func.angle;

    }, 1);

    if(finalAngle == 90)
    {
      clearInterval(intval);
    }
});

基本上,我要做的就是(静态地)计算角度,一旦达到90,就调用clearInterval函数。 我必须引入另一个变量来存储计数,以便可以在setInterval函数之外访问它。

这很容易。 调用setInterval ,然后评估finalAngle的条件,并在一毫秒后调用旋转函数。 因此,当finalAngle为90时,永远不会调用clearInterval

此代码应为您工作:

$(document).ready(function() {

    var intval = setInterval(function func() 
    {
      $("#myimg").rotate(1);
      if(typeof func.angle == 'undefined' )
      {
           func.angle = 0;
      }

      func.angle += 1;

      if (func.angle == 90)
      {
        clearInterval(intval);
      }    
    }, 1);  
});

if语句执行一次。 尝试这个?

$(document).ready(function() {
    var finalAngle;
    var intval = setInterval(function func() 
    {
      $("#myimg").rotate(1);
      if(typeof func.angle == 'undefined' )
      {
           func.angle = 0;
      }

      func.angle += 1;
      finalAngle = func.angle;
      if(finalAngle == 90)
      {
          clearInterval(intval);
      }


    }, 1);


});

虽然我不明白为什么你不能摆脱……

$(document).ready(function() {
    var finalAngle=0;
    var intval = setInterval(function func() 
    {
      $("#myimg").rotate(1);

      finalAngle++;

      if(finalAngle == 90)
      {
          clearInterval(intval);
      }


    }, 1);


});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM