Javascript 如何在滚动位置后平滑向下滚动到元素>;0?

Javascript 如何在滚动位置后平滑向下滚动到元素>;0?,javascript,Javascript,我的页面顶部有一个全屏摘要。当用户开始滚动时,我希望整个页面自动平滑地向下滚动到下面的部分 不幸的是,下面的代码不起作用。正如发布的一样,它根本不会滚动,当我没有将滚动变量设置为true以避免多次执行scrollIntoView时,它的速度非常慢 使用vanilla JS修复此问题的好方法是什么 例如,在Chrome中测试: let scrolling=false; window.onscroll=()=>{ 常量偏移=window.pageYOffset; 如果(偏移量>0&&offset=

我的页面顶部有一个全屏摘要。当用户开始滚动时,我希望整个页面自动平滑地向下滚动到下面的部分

不幸的是,下面的代码不起作用。正如发布的一样,它根本不会滚动,当我没有将滚动变量设置为true以避免多次执行scrollIntoView时,它的速度非常慢

使用vanilla JS修复此问题的好方法是什么

例如,在Chrome中测试:

let scrolling=false;
window.onscroll=()=>{
常量偏移=window.pageYOffset;
如果(偏移量>0&&offset=窗口内部宽度){
滚动=假;
}
}
.sometrister{
背景:蓝色;
高度:100vh;
宽度:100vw;
}
.一些内容{
背景:红色;
高度:200vh;
宽度:100vw;
}

我对这个问题很感兴趣,所以我这样做了,试图让它更宽(它可以自动上下滚动)。我希望这符合你的问题

(在整版中使用代码段更好)

const
AllSections=document.querySelectorAll('body>section'),//所有目标节引用
SectionScont=所有Sections.length,
opt={行为:“平滑”,块:“开始”};
变量
NoSmooth=true,//自动滚动已关闭
Last_W_PosY=0,//用于确定滚动事件的方向
Smooth_Id=0,//设置启动autoScroll的超时时间
Smooth_End=0,//设置检测自动滚动结束的间隔
Scroll2Section=-1;//autoScroll的目标部分
window.onscroll=()=>{
clearTimeout(平滑\u Id);
让
W_PosY=window.pageYOffset,
W_高度=窗内高度,
方向=(最后一个位置<最后一个位置)?“向下”:“向上”;
如果(不光滑){
Scroll2Section=-1;
让parts_Section=true;
for(设i=0;i0){
Scroll2Section=i;
打破
}
}
}
如果(方向=='up'){
对于(设i=sectionScont;i-->0;){
如果(所有节[i].getBoundingClientRect().y<1){//somme顶部位置不精确
Scroll2Section=i;
打破
}
}
}
}
如果(第部分){
Smooth\u Id=setTimeout(Smooth\u Action,300)//自动滚动的反应延迟
}
}
Last_W_PosY=W_PosY;
}
函数平滑_动作(){
NoSmooth=假;
所有部分[Scroll2Section].scrollIntoView(opt);
间隙(平滑端);
平滑结束=设置间隔(等待平滑结束,100)
}
函数等待\u平滑\u完成(){
设W_PosY=window.pageYOffset;
if(Last_W_PosY==W_PosY){
NoSmooth=真;
间隙(平滑端);
}
Last_W_PosY=W_PosY;
}
body{margin:0;}
正文>部分{显示:块;宽度:100%;边距:0}
.content_0{高度:100vh;背景:#001f3f;}
.content_1{高度:120vh;背景:#FF851B;}
.content_2{高度:140vh;背景:#39CCCC;}
.content_3{高度:160vh;背景:#F012BE;}
p{显示:内联块;边距:20px;填充:3px;背景色:#f0f8ff}
1/4

2/4

3/4


4/4

不确定你到底想达到什么目的,但是如果我得到了大致的想法,如果页面开始从我的控制中滚动,我会感到有点困惑和恼火。这在现代网站设计中非常常见。这是一个流行的框架,不幸的是它还有其他问题,所以这对我来说不是解决方案。你不想让它在
窗口中运行吗?至于平滑滚动功能,有很多库可以实现它。您可以在中查看一个很好的示例,看起来您需要为偏移设置动画,使其具有缓和效果。您可以将其分为两个任务-1-找到设置偏移量的方法,使页面看起来具有代表性,2-设置偏移量的动画。在alvarotrigo.com/fullPage中,您会遇到哪些问题?(一个就够了)