在我建立的网站上滚动时,使用CSS属性position: fixed可以按预期方式将导航栏保持在页面的顶部。
position: fixed
但是,在Chrome浏览器中,如果您使用导航栏中的链接,该链接 _有时会_消失。通常,您单击的项目仍然可见,但并非总是可见。有时整个事情消失了。左右移动鼠标将使元素的一部分退回,而使用滚轮或箭头键滚动只需单击一次即可将元素退回。您可以在上(间歇地)看到它的发生- 您可能必须单击几次导航链接,才能看到它的发生。
我也尝试过使用z-index和可见性/显示类型,但是没有运气。
我遇到了这个问题,但修复程序根本不适合我。似乎是webkit的问题,因为IE和Firefox正常工作。
这是一个已知问题,还是可以使固定元素可见的修补程序?
更新:
top: 0;我尝试过只有效果元素,并且效果bottom: 0;正常。
top: 0;
bottom: 0;
这是一个尚待解决的webkit问题,奇怪的是,使用JavaScript而不是使用#url值进行跳转不会导致此问题。为了解决这个问题,我提供了一个JavaScript版本,该版本采用锚点值,并找到具有该ID的元素的绝对位置并跳转到该位置:
#
var elements = document.getElementsByTagName('a'); for(var i = 1; i < elements.length; i++) { elements[i].onclick = function() { var hash = this.hash.substr(1), elementTop = document.getElementById(hash).offsetTop; window.scrollTo(0, elementTop + 125); window.location.hash = ''; return false; } }
我可以进一步完善它,使其成为仅查找以开头的链接#,而不是a查找到的标签。
a