嗨我有一个'返回顶部'按钮,一旦浏览器滚动一定距离就会淡入并动画。问题是每次浏览器被骂一遍又一遍地重复.animate()。任何想法如何一旦发生一次就停止动画?干杯
以下是代码:
$('.up_arrow').hide();
// fade in up arrow
$(function () {
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
$('.up_arrow').fadeIn(2000, 'swing')
.animate ({
opacity: 1,
left: '+=30'
},
{
duration: '2000',
easing: 'swing',
queue: false
}
);
} else {
$('.up_arrow').fadeOut(2000, 'swing');
}
});
});
答案 0 :(得分:2)
$(function () {
var stop = false;
$(window).scroll(function () {
if ($(this).scrollTop() > 100 && stop == false) {
$('.up_arrow').fadeIn(2000, 'swing')
.animate({
opacity: 1,
left: '+=30'
}, {
duration: '2000',
easing: 'swing',
queue: false
});
stop = true;
} else {
$('.up_arrow').fadeOut(2000, 'swing');
stop = false;
}
});
});
答案 1 :(得分:1)
我怀疑stop()方法应该在这里工作,可能是最好的做法。
e.g。
$('.up_arrow').stop().fadeOut(2000, 'swing');
我只在animate()中使用它,但它应该可以解决问题。