【发布时间】:2012-06-20 17:18:47
【问题描述】:
当用户滚动时,我想动画页面滚动到页面的不同部分。所以我写了这段代码:
var $window = $(window);
var sectionHeight = $window.height();
var animating = false;
var dir;
// initialize page position (0)
var pagePos = $(window).scrollTop();
$(window).scroll(function() {
// current page position
var st = $(this).scrollTop();
// whether to animate up or down
dir = ((st > pagePos) ? '+=' : '-=');
// animate
if (animating == false) {
animating = true;
$('html, body').stop().animate({scrollTop: dir+sectionHeight},500, function() {
pagePos = $(window).scrollTop();
animating = false;
});
}
});
问题是,在我的初始动画关闭后,我得到了一个链接动画,它将页面动画返回到顶部。我不知道为什么,因为除非“动画”设置为假,否则它不应该动画。仅当动画完成时才将其设置回 false ......对吗?
【问题讨论】:
-
有趣的是,在滚动功能中,我添加了一行来显示固定 div 中的“动画”状态。它在滚动时变为真,然后闪烁假,但最终保持为真......
标签: javascript jquery