所以这段代码没有做我期望它做的事情,停止什么也不做,它一直保持动画效果,给出奇怪的结果,(因为newpos的计算是错误的。
if (direction =='left') {
newpos = parseInt(currentpos) - 300;
$('.slider').stop(true, true).animate({"margin-left": newpos}, 1000, "easeOutQuart");
}
else if (direction =='right') {
newpos = parseInt(currentpos) + 300;
$('.slider').stop(true, true).animate({"margin-left": newpos}, 1000, "easeOutQuart");
}但这是可行的
if (direction =='left' && !$('.slider').is(':animated')) {
newpos = parseInt(currentpos) - 300;
$('.slider').stop(true, true).animate({"margin-left": newpos}, 1000, "easeOutQuart");
}
else if (direction =='right' && !$('.slider').is(':animated')) {
newpos = parseInt(currentpos) + 300;
$('.slider').stop(true, true).animate({"margin-left": newpos}, 1000, "easeOutQuart");
}问题是,在条件中没有is(':animated')的情况下,我该如何做呢?在这种情况下,stop()应该做这项工作吗?
发布于 2012-05-17 18:09:47
if (direction =='left') {
newpos = parseInt(currentpos) - 300;
}
else if (direction =='right') {
newpos = parseInt(currentpos) + 300;
}
$('.slider').animate({"margin-left": newpos}, 1000, "easeOutQuart");https://stackoverflow.com/questions/10633505
复制相似问题