我尝试将滚动快照设置到位。我试图实现的目标可以在这里看到: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/
打开控制台并在向上/向下/向上滚动时检查消息。
非常感谢你指出了正确的方向。
答案 0 :(得分:0)
我无法使用此链接上提供的插件,因为它们使用div 使用section class但我无法编辑这种html元素。
为什么不使用fullpage.js选项sectionSelector
来更改它并使用任何其他选择器?
$('#fullpage').fullpage({
sectionSelector: '.mySelector'
});
然后在HTML
中<div id="fullpage">
<div class="mySelector">Section 1</div>
<div class="mySelector">Section 2</div>
<div class="mySelector">Section 3</div>
</div>
如果您没有所有部分的公共类,您甚至可以使用以下内容:
sectionSelector: '#fullpage>div'
将允许任何jQuery有效选择器。
我更喜欢在页面上的锚标签上使用id。所以当用户 开始向上/向下滚动我需要检测上一个/下一个锚点 滚动到它。
我想说使用id
元素可能会非常困难,因为在您甚至可以控制动画之前,网站将滚动到给定的ID。
这是一个浏览器功能。