[英]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.