【发布时间】:2015-06-29 14:12:08
【问题描述】:
我尝试将 scroll snap 设置到位。我试图达到的目标可以在这里看到:http://alvarotrigo.com/fullPage。所以当用户开始滚动时,它会立即被拦截并滚动页面直到下一个部分。
我无法使用此链接上提供的插件,因为他们使用带有 section 类的 div,但我无法编辑此类 html 元素。
我更喜欢在页面的锚标记上使用id。因此,当用户开始向上/向下滚动时,我需要检测上一个/下一个锚点并滚动到它。
如上面的链接演示所示,当(鼠标)滚动开始(向上或向下)时,没有什么可以阻止它......直到它停止。然后再次滚动可以发生。
借助以下代码,我可以轻松检测鼠标向上或向下滚动:
var lastScrollTop = 0;
$(window).scroll(function(event){
var st = $(this).scrollTop();
if (st > lastScrollTop){
// downscroll code
console.log('down');
} else {
// upscroll code
console.log('up');
}
lastScrollTop = st;
});
我还可以像这样检测滚动是否正在进行:
$(window).scroll(function(event){
clearTimeout($.data(this, 'scrollTimer'));
$.data(this, 'scrollTimer', setTimeout(function() {
// do something
console.log("Haven't scrolled in 250ms!");
}, 250));
});
现在我需要真的滚动到下一个/上一个锚点(感谢scrollTop)
我的 jsFiddle:http://jsfiddle.net/f38fmsw9/1/
向上/向下/停止滚动时打开控制台并检查消息。
非常感谢您为我指明了正确的方向。
【问题讨论】:
标签: javascript jquery html fullpage.js