ユーザーがページを上下にスクロールすると、各セクションに自動的にスクロールするWebサイトを構築しようとしています。私はこの問題を数週間解決しようとしていて、問題についての助けを感謝しています。イベントハンドラはスクロール機能であるため、複数のスクロールが発生するため、この問題が発生していると思います。私はこのトピックについて議論している多くの記事を読んでおり、解決策はsetIntervalまたはsetTimeout関数を追加しているようですが、私は両方を試しても結果はありません。ページアップ/ダウンイベントのアニメーションスクロール
var page = $("#page_container");
var home = $("#home");
var musicians = $("#musicians");
var athletes = $("#athletes");
var politics = $("#politics");
var bio = $("#bio");
var pages = [home, musicians, athletes, politics, bio];
var scrolled = false;
var pageCur = 0;
var lastScrollTop = 0;
page.scroll(function() {
scrolled = true;
});
var scrollTimeout = setInterval(function() {
if (scrolled == true) {
pageScroll();
}
else {
clearTimeout(scrollTimeout);
}
}, 3000);
function pageScroll() {
if (scrolled == true) {
scrolled = false;
var st = page.scrollTop();
var pageNex = pageCur + 1;
if (st > lastScrollTop) {
alert(pageNex);
pages[pageNex].velocity("scroll", {container: $("#page_container")});
} else {
alert(pageCur - 1);
pages[pageCur - 1].velocity("scroll", {container: $("#page_container")});
}
lastScrollTop = st;
pageCur = pageNex;
alert("1");
clearTimeout(scrollTimeout);
}
}