我正在将setInterval
与mousedown
事件一起使用,以使某些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/