Javascript 使用鼠标滚轮向下/向上滚动一点,滚动到其他div
这是我想要实现的目标,这是我当前的代码:Javascript 使用鼠标滚轮向下/向上滚动一点,滚动到其他div,javascript,jquery,scroll,single-page-application,Javascript,Jquery,Scroll,Single Page Application,这是我想要实现的目标,这是我当前的代码: var offsetArray = Array(); offsetArray[0] = $('header'); offsetArray[1] = $('#puslapis2'); offsetArray[2] = $('#puslapis5'); offsetArray[3] = $('#puslapis7'); offsetArray[4] = $('#puslapis9'); var pos = 0; var lastScrollTop = 0;
var offsetArray = Array();
offsetArray[0] = $('header');
offsetArray[1] = $('#puslapis2');
offsetArray[2] = $('#puslapis5');
offsetArray[3] = $('#puslapis7');
offsetArray[4] = $('#puslapis9');
var pos = 0;
var lastScrollTop = 0;
$(window).scroll(function () {
console.log("pos " + pos);
var st = $(this).scrollTop();
if (st > lastScrollTop) {
console.log("Scroll down");
$('html,body').animate({scrollTop: offsetArray[pos + 1].ofset().top}, 'slow', function () {pos++;});
} else {
console.log("Scroll up");
$('html,body').animate({scrollTop: offsetArray[pos - 1].ofset().top}, 'slow', function () {pos--;});
}
lastScrollTop = st;
});
向下滚动一点后,animate应该只调用一次,pos应该增加一次。但它会上下滚动,然后发生混乱。有什么办法可以防止这种情况吗?我写了一个插件来管理单页滚动,就像你提供的链接一样 这是我认为你想做的事
几年过去了,但对于所有寻求解决方案的人来说: 像这样在jQuery中使用数组是行不通的!请在控制台中查看 所以我决定把它个人化,所以你必须为每一行编辑它
wain = 0;
var pos = 0;
var lastpos = 0;
jobdone = false;
$(window).scroll(function() {
pos = $(this).scrollTop();
if (pos > lastpos) {
//Oben?
if (wain == 0) {
$('html, body').animate({
scrollTop: $('#port').offset().top
}, 'fast');
wain++;
lastpos = pos;
};
} else if (pos ==lastpos) {
} else {
//Portfolio?
if (wain == 1) {
$('html, body').animate({
scrollTop: $('#main').offset().top
}, 'fast');
wain--;
};
};
lastpos = pos;
}) 您只需在注释下c&p if语句并替换whereminumber wain。使用您拥有的ID更改端口/主端口
wain = 0;
var pos = 0;
var lastpos = 0;
jobdone = false;
$(window).scroll(function() {
pos = $(this).scrollTop();
if (pos > lastpos) {
//Oben?
if (wain == 0) {
$('html, body').animate({
scrollTop: $('#port').offset().top
}, 'fast');
wain++;
lastpos = pos;
};
} else if (pos ==lastpos) {
} else {
//Portfolio?
if (wain == 1) {
$('html, body').animate({
scrollTop: $('#main').offset().top
}, 'fast');
wain--;
};
};
lastpos = pos;