所以我设置了一个滚动监听器:
window.onscroll = function (){
alert(window.pageYOffset); // have also tested with window.scrollY
}
而且,正如预期的那样,滚动完成后我会收到警报。我有调试控制台,也为此关闭,以免在移动浏览器中添加任何额外空间,因此执行alert()而不是console.log()。
现在,我也在做这个onload:
setTimeout(function()
{
window.scrollTo(0, 0);
}, 33);
而且,正如预期的那样,导航栏会隐藏负载。我尝试在没有超时的情况下执行window.scrollTo(),直到我添加超时才失败。无论如何,这不是问题。我的导航栏隐藏了,这就是我想要的。
所以现在我将我的视口移动到0,0并且在滚动时警告触发,我希望拖动我的手指(向上滚动)以显示导航栏会告诉我window.pageOffsetY&lt ; 0或window.scrollY是< 0.事实并非如此。相反,我的警报在两种情况下都告诉我0,即使我已向上滚动以显示浏览器导航栏中的那些60px(视网膜上120px)。
我的问题是:有没有办法判断您是否正在滚动导航栏空间?
这样做的最终目标是始终将某些东西放在底部。除非我开始进入导航栏滚动空间,因为移动safari将scrollY / pageYOffset报告为0,即使还有更多滚动操作发生,我也可以正常滚动元素。
答案 0 :(得分:1)
在iOS上你可以看看啊:
window.innerHeight
如果您在视图中滚动导航栏,则innerHeight将小于416.min innerHeight应为416-60。又名356,它会让你知道完整的导航栏。