ユーザーがスクロールしたときに、ページのさまざまなセクションに段階的にスクロールするページをアニメーション化したいと思います。だから私はこのコードを書いた:
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;
});
}
});
問題は、最初のアニメーションを下にした後、ページを一番上にアニメーション化する連鎖アニメーションを取得することです。'animating'がfalseに設定されていない限り、アニメーション化されるべきではないため、理由はわかりません。アニメーションが完了すると、falseに戻されるだけです...そうですか?