Javascript jQuery';s scrollTop()在包括Chrome在内的Android浏览器上表现得很奇怪
我在使用动画滚动条时遇到问题。预期的行为应该是单击导航按钮,轻松地滚动到页面的末尾(在接近尾端的地方稍作休息) 现在这个问题在PC上运行得很好。在android设备上(我试过手机),Javascript jQuery';s scrollTop()在包括Chrome在内的Android浏览器上表现得很奇怪,javascript,android,jquery,scroll,Javascript,Android,Jquery,Scroll,我在使用动画滚动条时遇到问题。预期的行为应该是单击导航按钮,轻松地滚动到页面的末尾(在接近尾端的地方稍作休息) 现在这个问题在PC上运行得很好。在android设备上(我试过手机),scrollTop值和($(document.body).height()-$(window.height())不匹配。使用scrollTop时,正好有55px更少,因此表现出各种奇怪的行为。。。有时有效有时无效。我认为这与浏览器栏崩溃和破坏值有关…但我无法理解 我尝试了以下方法:初始化scroll事件上的变量,我尝
scrollTop
值和($(document.body).height()-$(window.height())
不匹配。使用scrollTop
时,正好有55px
更少,因此表现出各种奇怪的行为。。。有时有效有时无效。我认为这与浏览器栏崩溃和破坏值有关…但我无法理解
我尝试了以下方法:初始化scroll事件上的变量,我尝试了不起作用的vanilla js。需要帮助:)作为参考,如果有帮助,我还打印了页面底部的值。这是密码
contactF = Math.floor($(document.body).height() - $(window).height());
$("#cont").click(function(){
if ($(document).scrollTop() < contactF && flagScroll==true){ //flag stops other buttons from beying pushed
flagScroll = false;
var inter = setInterval(function(){
var doc = $(document).scrollTop();
if (doc == contactF){ // this is the final desired position
clearInterval(inter);
flagScroll = true;
pix = 10; //pixels to jump
return;
}
if (doc >= contactF-50){ // this is a break on aproach
pix = 1;
}
$(document).scrollTop(doc + pix);
}, 10);
}
})
contactF=Math.floor($(document.body).height()-$(window.height());
$(“#续”)。单击(函数(){
如果($(document).scrollTop()=contactF-50){//,这是一个中断
pix=1;
}
$(文档).scrollTop(文档+pix);
}, 10);
}
})
编辑:同样要找到bug,你需要从页面的顶部一直滚动到底部,如果从页面的顶部你只需按下联系人按钮就可以了。但是如果你不滚动它,它会扰乱值…也有同样的问题,花了一整天的时间来解决它。 关于Android chrome上的地址栏崩溃,你是对的,它把事情搞砸了。原来jQuery函数
$(window).height()
总是报告地址栏折叠之前的视口高度。要获得正确的值,请改用window.innerHeight
。您可以在此处找到有关URL栏大小调整的更多信息
你也可以发现有人问类似的问题,关于safari地址栏自动隐藏,解决方案是类似的 这都在$(document.ready(function(){})中吗?是的。所有这些都在$(document.ready函数)中。您可能需要为“resize”事件和/或“orientationchange”事件添加事件侦听器。折叠条可能会发出这些事件,您可以使用这些事件重新计算值。我已经添加了这些事件,但仍然没有。。。