我正在尝试创建一个水平滚动的一页网站。我使用了scrollTo库来使链接正常工作,除了鼠标滚轮滚动之外,它都可以正常工作。
HTML代码如下:
<main class="Index">
<section id="new" class="Index-page"></section>
<section id="another" class="Index-page"></section>
<section id="lipsum" class="Index-page"></section>
</main>
,jQuery代码如下:
jQuery('section:first-child').addClass('active');
var timer = null;
window.addEventListener('wheel', function(e) {
if(timer !== null) {
clearTimeout(timer);
}
timer = setTimeout(function() {
var dir = Math.sign(e.deltaY);
nsection(dir);
}, 45);
}, false);
function nsection(dir){
if( dir == 1 ) {
var id = $('section.active').next().attr('id');
}
else {
var id = $('section.active').prev().attr('id');
}
if (typeof id !== 'undefined' && curr != id) {
$('.Content-outer').scrollTo('#' + id, 1000, {margin: true});
$('section').removeClass('active');
$('#' + id).addClass('active');
}
}
问题是,当我使用超时时,它可以正常工作,但是延迟约一秒钟,但我需要立即更改此部分。如果我删除了超时,那么它将从第一部分向右滚动直到最后一个。我会在这里感谢任何提示。谢谢。