1

我正在尝试使图像看起来像是在倒塌。所以我制作了一个 div 并将图像放入其中。使用 setinterval 和 clearinterval 我试图让图像停在 div 的边界,但我不知道该怎么做。这是代码:

var x = 200;
var y = -155;
var inc = 5;

var myVar;

var fall = function() {
myVar = setInterval(function(){moveDown();},30);
};
var stopFall = function() {
clearInterval(myVar);
};
var moveDown = function() {
y += inc;

document.getElementById('img1').style.top = y + 'px';
};

我希望setinterval自动停止,y = 155但我不知道如何。我尝试过 if、while 和 for 语句,但它们似乎不起作用。我制作了一个可以运行的按钮,stopFall();它可以工作,但我希望它在不点击任何按钮的情况下自动停止。有谁知道如何做到这一点?

4

2 回答 2

2

更改您的moveDown()函数以检查当前状态,y并在必要时调用stopFall().

var moveDown = function() {
  y += inc;

  if ( y >= 155 ) { stopFall(); }

  document.getElementById('img1').style.top = y + 'px';
};

作为替代方案,您可以clearInterval()像这样直接使用

var moveDown = function() {
  y += inc;

  if ( y >= 155 ) { 
    clearInterval(myVar);
  }

  document.getElementById('img1').style.top = y + 'px';
};
于 2012-06-13T14:34:07.467 回答
0
 var x = 200;
 var y = -155;
 var inc = 5;

 var myVar;

 var fall = function() {
       myVar = setInterval(function(){
         if(y >= 155) clearInterval(myVar);
         moveDown();
       },
       30);
 };

 var moveDown = function() {
     y += inc;

     document.getElementById('img1').style.top = y + 'px';
 };
于 2012-06-13T14:37:53.223 回答