Javascript 滚动到逐节

Javascript 滚动到逐节,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有HTML标记: HTML: 其中部分为全屏(宽度:100%;高度:100%),菜单具有绝对位置。 问题: 如何使用鼠标滚动(或按键)滚动和捕捉到每个部分 当滚动到最后一个部分时,然后再次向下滚动到#一个并重复 当我点击链接时,它会滚动到第节 感谢您的建议、想法和代码。很有趣 我偷了东西,更改了布局,并尝试添加您提到的功能(1.滚动快照+2.单击链接时滚动)。 不幸的是,我无法使用第二个函数 添加滚动捕捉不是问题 您需要滚动捕捉类型:y必填和滚动捕捉对齐:开始在部分上 var d

我有HTML标记:

HTML:

其中部分为全屏(宽度:100%;高度:100%),菜单具有绝对位置。

问题:
  • 如何使用鼠标滚动(或按键)滚动和捕捉到每个部分
  • 当滚动到最后一个部分时,然后再次向下滚动到#一个并重复
  • 当我点击链接时,它会滚动到第节
  • 感谢您的建议、想法和代码。

    很有趣

    我偷了东西,更改了布局,并尝试添加您提到的功能(1.滚动快照+2.单击链接时滚动)。 不幸的是,我无法使用第二个函数

  • 添加滚动捕捉不是问题
  • 您需要
    滚动捕捉类型:y必填
    滚动捕捉对齐:开始在部分上

    var doc=window.document,
    context=doc.querySelector(“.js循环”),
    clones=context.querySelectorAll(“.is clone”),
    disableScroll=false,
    滚动高度=0,
    scrollPos=0,
    克隆高度=0,
    i=0;
    函数getScrollPos(){
    返回(context.pageYOffset | | | context.scrollTop)-(context.clientTop | | 0);
    }
    功能设置CROLLPOS(pos){
    context.scrollTop=pos;
    }
    函数getClonesHeight(){
    克隆高度=0;
    对于(i=0;i<0.length;i+=1){
    clonesHeight=clonesHeight+clones[i]。视线外;
    }
    返回克隆高度;
    }
    函数reCalc(){
    scrollPos=getScrollPos();
    scrollHeight=context.scrollHeight;
    clonesHeight=getClonesHeight();
    如果(滚动位置=滚动高度){
    //到达底部后滚动到顶部
    setScrollPos(1);//向下滚动1个像素以允许向上滚动
    disableScroll=true;
    
    }否则,如果(scrollPos您可以在这种情况下使用ID

    为您的分区设置ID,添加锚定标记,并将href属性设置为分区ID

    
    
    不要忘记将“滚动行为”设置为“平滑”以实现平滑滚动


    检查这个插件检查这个链接有一个新的css属性滚动捕捉,你可以使用它
    <body>
        <header></header>
    
        <nav>
            <ul>
                <li><a href="#one">one</a></li>
                <li><a href="#two">two</a></li>
            </ul>
        </nav>
    
        <section id="one"></section>
        <section id="two"></section>
    
        <footer></footer>
    </body>