如何使用 jQuery 在页面加载时 block/disable 滚动几秒钟?
How to block/disable scrolling for seconds on page load with jQuery?
我正在使用此代码,使页面在页面加载时向下滚动到 class:
$(function(){
$('html, body').delay(2000).animate({
scrollTop: $('.myDiv').offset().top
}, 2000);
return false;
});
当页面加载时,我滚动时与动画发生冲突。如何在延迟期间或动画开始之前禁用滚动。
我已经搜索并找到了几个关于如何在 click function 上禁用滚动的示例,但我无法在我的代码中实现它。
谢谢。我真的希望你能帮助我。请原谅我的英语。
通过将溢出设置为隐藏来隐藏页面加载时的滚动
html, body {
overflow: hidden;
}
运行 设置超时 2 秒,然后将溢出设置为自动,然后像这样设置动画
$(function(){
setTimeout(function(){
$('html, body')
.css({
'overflow': 'auto'
})
.animate({
scrollTop: $('.myDiv').offset().top
}, 2000);
}, 2000);
});
这是一个demo
使用 delay 没问题,但其功能有限,如文档中所述 here
The .delay() method is best for delaying between queued jQuery effects. Because it is limited—it doesn't, for example, offer a way to cancel the delay—.delay() is not a replacement for JavaScript's native setTimeout function, which may be more appropriate for certain use cases.
我正在使用此代码,使页面在页面加载时向下滚动到 class:
$(function(){
$('html, body').delay(2000).animate({
scrollTop: $('.myDiv').offset().top
}, 2000);
return false;
});
当页面加载时,我滚动时与动画发生冲突。如何在延迟期间或动画开始之前禁用滚动。
我已经搜索并找到了几个关于如何在 click function 上禁用滚动的示例,但我无法在我的代码中实现它。
谢谢。我真的希望你能帮助我。请原谅我的英语。
通过将溢出设置为隐藏来隐藏页面加载时的滚动
html, body {
overflow: hidden;
}
运行 设置超时 2 秒,然后将溢出设置为自动,然后像这样设置动画
$(function(){
setTimeout(function(){
$('html, body')
.css({
'overflow': 'auto'
})
.animate({
scrollTop: $('.myDiv').offset().top
}, 2000);
}, 2000);
});
这是一个demo
使用 delay 没问题,但其功能有限,如文档中所述 here
The .delay() method is best for delaying between queued jQuery effects. Because it is limited—it doesn't, for example, offer a way to cancel the delay—.delay() is not a replacement for JavaScript's native setTimeout function, which may be more appropriate for certain use cases.