我正在将setIntervalmousedown事件一起使用,以使某些div像滑块一样不断进行动画处理。

我还将变量设置为setInterval,以便可以停止mouseup上的动画。

除了在iOS上,这工作正常,在iOS上,如果我在setInterval函数中的mousedown前面删除变量(int00)和运算符,它将仅使div动画化:

var int00;

$('#scroll_diseases_left').mousedown(function(){
    int00 = setInterval(function() { scroll_diseases_left(); }, 250);
});

$('#scroll_diseases_left').mouseup(function(){
    clearInterval(int00);
});

function scroll_diseases_left() {
    $('#scroll_diseases_right').fadeIn();
    $('#disease_wrapper').animate({marginLeft: '-=50px'}, {duration: 500, queue: false, easing: 'linear'});
    $('#arthritis_content').animate({marginLeft: '-=50px'}, {duration: 500, queue: false, easing: 'linear'});
    $('#bleeding_content').animate({marginLeft: '-=50px'}, {duration: 500, queue: false, easing: 'linear'});
    $('#blood_vessel_content').animate({marginLeft: '-=50px'}, {duration: 500, queue: false, easing: 'linear'});
    $('#brain_content').animate({marginLeft: '-=50px'}, {duration: 500, queue: false, easing: 'linear'});
    $('#cancer_content').animate({marginLeft: '-=50px'}, {duration: 500, queue: false, easing: 'linear'});
}

有任何想法吗?

更新

在mousedown函数中将int00声明为局部变量可在iOS上使用,但随后我无法停止动画...
$('#scroll_diseases_left').mousedown(function(){
    var int00 = setInterval(function() { scroll_diseases_left(); }, 250);
});

$('#scroll_diseases_left').mouseup(function(){
    clearInterval(int00);
});

最佳答案

问题在于iOS上的touch事件没有被接收。这有效:

  $('#scroll_diseases_left').bind('touchstart mousedown', function(){
   int00 = int00 || setInterval(function() { scroll_diseases_left(); }, 250);
  });

  $('#scroll_diseases_left').bind('touchend mouseup', function(){
      clearInterval(int00);
      int00 = undefined;
  });

关于javascript - 将setInterval与变量一起使用在iOS上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25323573/

10-11 12:36