Javascript 如果用户向下滚动,如何在x秒后自动进入顶部

Javascript 如果用户向下滚动,如何在x秒后自动进入顶部,javascript,jquery,Javascript,Jquery,我是新来的。JS/CSS和堆栈溢出的新特性 我有一个带有CSS属性的div框overflow:auto。 如果用户在DIV框中向下滚动,它应在x秒后自动再次滚动到顶部 这可能吗?这怎么可能呢 我认为应该检测滚动条是否不在开始位置,让倒计时计数。 x秒后,它应该返回顶部。对吧? 谢谢。这里有一个非jQuery版本: var超时; 函数returnToTop(){ 如果(!超时){ 超时=设置超时(()=>{ document.getElementById(“可滚动”).scroll(0,0);

我是新来的。JS/CSS和堆栈溢出的新特性

我有一个带有CSS属性的
div
overflow:auto
。 如果用户在DIV框中向下滚动,它应在x秒后自动再次滚动到顶部

这可能吗?这怎么可能呢

我认为应该检测滚动条是否不在开始位置,让倒计时计数。 x秒后,它应该返回顶部。对吧?


谢谢。

这里有一个非jQuery版本:

var超时;
函数returnToTop(){
如果(!超时){
超时=设置超时(()=>{
document.getElementById(“可滚动”).scroll(0,0);
超时=空;
}, 5000)
}
}
#可滚动{
高度:200px;
溢出y:滚动;
}
#内部{
高度:500px;
}

滚动我!

使用
setTimeOut()函数和页面空闲来尝试此操作


$(窗口)。滚动(函数(){
if($(窗口).scrollTop()+$(窗口).height()==$(文档).height()){
setTimeout(函数(){
$('html,body')。设置动画({
滚动顶部:0
}, 700);
}, 5000);
}
});
var-idleTime=0;
$(文档).ready(函数(){
//每秒钟增加一次空闲时间计数器。
var idleInterval=setInterval(timerIncrement,1000);//1秒
//将鼠标移动时的空闲计时器归零。
$(this).mousemove(函数(e){
空闲时间=0;
});
$(此)。按键(功能(e){
空闲时间=0;
});
});
函数timerIncrement(){
空闲时间=空闲时间+1;
如果(空闲时间>10){//10秒
空闲时间=0;
$('html,body')。设置动画({
滚动顶部:0
}, 700);
}
}
#内容{
高度:2000px;
}


滚动&darr这是否回答了您的问题@UdhayTitus嘿谢谢你的回答。不,我很抱歉-我只是希望如果有人滚动div,它会回滚。当滚动条被使用时,倒计时应该开始。如果你想使用jquery,请参考这个提琴。我想这将满足您的期望,因为如果用户到达终点,那么只有开始倒计时。@UdhayTitus这就是我想要的!谢谢但有一个问题。我了解用户,他们不会一直滚动到最后。如果用户只滚动了一点,你知道要改变什么来开始倒计时吗?在这里检查更新的答案嘿,谢谢你的答案!这就是我想要的!在用户松开滚动条之前,是否可能不会开始倒计时。还是这太多了?:)此函数将被调用数百次。如果用户滚动等待片刻并再次滚动,则第一次调用时会将其移动到顶部,如果用户向下滚动,则会很快再次移动到顶部。这个功能应该是去抖动或节流的。@Deykun你的右边。如果我滚动很多次,它只会在一秒钟后将我放回原处。应该对此代码进行哪些更改以防止其发生?添加了debounce。您可以删除带有样式和js代码的返回顶部按钮吗?:)如果我尝试删除某些内容,代码将不再工作。只需要不带按钮的功能:)@wabizo检查更新的答案。现在它没有滚动顶部按钮。