我想在左边距为 1200px 时停止 setInterval()。 我的代码是:-
<html>
<body>
<script src="jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function () {
$('#btn').click(function () {
var i = setInterval(function () {
$('img').animate({
'margin-left': '+=100px'
}, 'fast');
var a = $('img').css('margin-left');
if (a == "1200px") {
clearInterval(i);
}
}, 50);
});
});
</script>
<img src="48_800[1].jpg" height="50px" width="50px"><br>
<input type="button" value="start" id="btn"><br>
</body>
</html>
它不起作用。有人可以帮助我吗?
最佳答案
您应该将像素值转换为整数a = parseInt(a);
。 (与之前一样,您获取带有小数的 margin-left
值,例如 99.45px
,然后是 199.45px
,因此它会跳过 >100px
)
var i = setInterval(function () {
$('img').animate({
'margin-left': '+=100px'
}, 'fast');
var a = $('img').css('margin-left');
a = parseInt(a);
if (a >= 100) {
clearInterval(i);
}
}, 50);
更新
请注意,在示例中我使用 >=100
来查看结果。
关于javascript - 当遇到特定条件时停止 setInterval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21931771/