jQuery在滚动之前获取滚动位置,以在全屏时使用scrollTop()位置临时禁用滚动
我有一个动画,全屏运行在我的网站顶部的网站加载。我想在动画运行时(15秒)禁用滚动,但仅当Y滚动位置等于0时,以防止在站点加载#锚时禁用滚动 问题是jQuery在滚动之前获取滚动位置,以在全屏时使用scrollTop()位置临时禁用滚动,jquery,Jquery,我有一个动画,全屏运行在我的网站顶部的网站加载。我想在动画运行时(15秒)禁用滚动,但仅当Y滚动位置等于0时,以防止在站点加载#锚时禁用滚动 问题是.scrollTop()在实际滚动之前没有输出滚动位置 $(window).scroll(function() { var height = $(window).scrollTop(); console.log(height); // no output before scroll if(height === 0) {
.scrollTop()
在实际滚动之前没有输出滚动位置
$(window).scroll(function() {
var height = $(window).scrollTop();
console.log(height); // no output before scroll
if(height === 0) {
//$("body").css({"overflow" : "hidden", "height" : "100%"}); //Lock scroll
}
});
setTimeout(function () {
$("body").css({"overflow" : "auto", "height" : "auto"});
}, 15000);
在实际完成滚动之前,如何检测滚动位置?获取$(窗口)。scrollTop()代码>加载文档时。如果文档是在y 0加载的,则将事件侦听器添加到滚动。15秒后,允许滚动并删除事件侦听器
$(文档).ready(函数(){
让scrollHeight=$(window).scrollTop();//获取加载页面的滚动高度
//如果在0处加载,则添加滚动事件侦听器。
如果(滚动高度==0){
$(窗口)。滚动(函数(){
$(“body”).css({“overflow”:“hidden”,“height”:“100%”);//锁定滚动
setTimeout(函数(){
$(“body”).css({“overflow”:“auto”,“height”:“auto”});
$(窗口)。解除绑定(“滚动”);
}, 15000);
});
}
});
我认为这很有帮助:
$(document).ready(function() {
$(document).mousedown(function(event) {
if(event.target === $('html')[0] && event.clientX >= document.documentElement.offsetWidth)
var height = $(window).scrollTop();
console.log(height); // output before scroll
})
})
谢谢你的建议。我删除了:$(窗口).scroll(函数(){}
部分,以便在第一次滚动之前使滚动锁工作!