我在页面顶部有一个固定的导航元素,每当iOS Safari浏览器导航(URL地址)工具栏出现它不被覆盖时,我都会尝试移动该元素。
我首先通过使用高度为100vh
的元素获取实际页面高度来导出工具栏的高度。此高度与window.innerHeight
之间的区别是工具栏的高度。
但是,问题是top: 0
有时被工具栏覆盖,有时紧随其后。这意味着我不能仅将top
设置为工具栏的高度;根据工具栏的生成方式,它有时会工作,但并非每次都能工作。
关于top: 0
何时被工具栏覆盖以及何时未被覆盖的任何想法?
顺便说一句,这只是横向模式下的问题。在纵向模式下,top: 0
永远不会被工具栏覆盖。
答案 0 :(得分:0)
我找到了解决方案。您必须监视最后一个滚动方向。
如果最后一个滚动方向是up
,则top: 0
永远不会被工具栏覆盖。
如果最后一个滚动方向是down
,则top
应该是top: Math.min(toolbarHeight, window.pageYOffset)