我有一个带有固定位置的滚动到顶部按钮。 滚动400px后,我希望此按钮从屏幕底部滑入。 我可以让它与fadein和fadeout一起工作。 这是按钮的代码。
<a href="#top" id="scrolltop"><img src="images/upbutton.png" alt="scroll to top"/></a>
#scrolltop {
position:fixed;
height:38px;
width:38px;
background-color:#444;
right:15px;
bottom:15px;
z-index:100;
}
$(document).scroll(function() {
var y = $(this).scrollTop();
if (y > 1000) {
$('#scrolltop').animate({bottom: 100});
} else {
$('#scrolltop').animate({bottom: -100});
}
});
答案 0 :(得分:0)
一个问题是你正在测试1000而不是400。
除了在滚动时多次触发scroll
事件。并且因为jquery的animate
函数是可堆叠的,所以在每个方向上都有多个动画,并且在等待每个方向结束时会有很长的延迟..
所以你需要一个更严格的逻辑......
:animated
jquery selector与.is()
method class
作为执行此操作的标记所以脚本变成了
var scr = $('#scrolltop');
$(document).scroll(function () {
var y = $(this).scrollTop();
if (y > 400) {
if (scr.is('.off') && !scr.is(':animated')) {
scr.animate({bottom: 100}, function () {
scr.removeClass('off');
});
}
} else {
if ((!scr.is('.off')) && (!scr.is(':animated'))) {
scr.animate({bottom: -100}, function () {
scr.addClass('off');
});
}
}
});