在我的业余时间里,我一直在考虑这几周,但找不到合适的解决方案。我想做这样的Apple页面:http://www.apple.com/iphone-5s/。当检测到鼠标滚动时,滚动到下一个元素,在动画滚动顶部时阻止滚动,然后,如果您向相反方向滚动,则再次向后滚动。我已经用数百种方式重写了我的代码,但它们都没有按预期工作。
这是我尝试过的代码之一,但它也不起作用。它还必须确定下一个和前一个位置,这些位置由未定义的变量destiny
表示。
var locked = false;
$('body').bind('mousewheel', function(e){
//prevent page fom scrolling
if (locked) { return false; };
if(e.originalEvent.wheelDelta < 0) {
//scroll down
$("html, body").animate({ scrollTop: destiny }, function () {
locked = false;
});
}else {
//scroll up
$("html, body").animate({ scrollTop: destiny }, function () {
locked = false;
});
}
});