滚动快照但在页面上使用锚标记

Scroll snap but using anchor tags on the page

我尝试将 滚动捕捉 设置到位。我尝试实现的目标可以在这里看到:http://alvarotrigo.com/fullPage。所以当用户开始滚动时,它会立即被拦截并滚动到下一部分。

我无法使用此 link 上提供的插件,因为他们将 div 与 section class 一起使用,但我无法编辑此类 html 元素.

我更喜欢在页面的锚标记上使用 id。因此,当用户开始滚动时 up/down 我需要检测 previous/next 锚点并滚动到它。

如上面的 link 演示所示,当(鼠标)滚动开始(向上或向下)时,没有什么可以阻止它......直到它停止。然后又会发生另一个滚动。

由于以下代码,我可以轻松检测到鼠标向上或向下滚动:

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));
});

现在我需要 真正 滚动到 next/previous 锚点(感谢 scrollTop

我的 jsFiddle:http://jsfiddle.net/f38fmsw9/1/

滚动时打开控制台并检查消息up/down/停止。

非常感谢您为我指明了正确的方向。

I cannot use the plugin provided on this link because they use div with section class but I cannot edit this kind of html elements.

为什么不使用 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>

如果您没有所有部分的通用 class,您甚至可以使用以下内容:

sectionSelector: '#fullpage>div'

任何 jQuery 有效的选择器都将被允许。

I prefer using the id on the anchor tags on the page. So when user starts scrolling up/down I need to detect the previous/next anchor and scroll to it.

我想说使用 id 元素可能会非常困难,因为在您甚至可以控制动画之前,网站将滚动到给定的 ID。 这是一个浏览器功能。