下面的代码将图像从屏幕顶部移动到底部。我想让这个setInterval()函数停止一次y==-100,但我不知道怎么.
var image = $('.background');
var y = 0;
setInterval(function() {
if (y == -100) {
//don't know what to add here
}
image.css('background-position', '0 ' + y + 'px');
y--;
}, 100);我想我需要使用clearInterval,但我不知道该返回什么。
发布于 2015-12-18 23:18:55
您可以在调用setInterval时存储该间隔的id,然后使用该特定间隔的id调用clearInterval:
var image = $('.background');
var y = 0;
var intervalId = setInterval(function() {
if (y === -100) {
clearInterval(intervalId);
}
image.css('background-position', '0 ' + y + 'px');
y--;
}, 100);.background {
background-image: url('//placehold.it/200');
width: 200px;
height: 200px;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="background"></div>
发布于 2015-12-18 23:19:30
您需要存储来自setInterval的返回值,然后可以将其传递给clearInterval。返回的值是对间隔的不透明引用,因此不应该将其用于其他任何事情。
var image = $('.background');
var y=0;
var interval = setInterval(function(){
if(y == -100) {
clearInterval(interval);
}
image.css('background-position', '0 ' + y + 'px');
y--;
}, 100);发布于 2015-12-18 23:19:09
你可以这样做:
var image = $('.background');
var y=0;
var interval = setInterval(function(){
if(y == -100) {
clearInterval(interval);
}
image.css('background-position', '0 ' + y + 'px');
y--;
}, 100);https://stackoverflow.com/questions/34365355
复制相似问题