我正在使用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函数之外访问它。
答案 0 :(得分:3)
这很容易。调用setInterval
然后评估finalAngle
的条件,并在一毫秒后调用旋转函数。因此,clearInterval
为90时,永远不会调用finalAngle
。
此代码适用于您:
$(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);
});
答案 1 :(得分: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);
});