设置position:fixed的导航栏滚动消失问题求助
问题解决:固定导航栏滚动消失的问题
问题根源
你设置的position:fixed失效,是因为<body>元素启用了3D变换上下文(perspective:1px + transform-style:preserve-3d),这会让固定定位元素不再以视口为参照,而是被限制在body的3D空间内,滚动时自然会跟着页面移动消失。
修复方案
给导航栏添加transform: translateZ(0),强制它脱离body的3D上下文,回到视口层级定位,同时不破坏原有的视差效果:
.nav{ width: 100%; height: 60px; position: fixed; top: 0; z-index: 999; transform: translateZ(0); /* 新增这行代码 */ }
完整修改后的导航栏CSS
/* menuCSS */ .nav{ width: 100%; height: 60px; position: fixed; top: 0; z-index: 999; transform: translateZ(0); } ul li{ list-style: none; width: 200px; line-height: 60px; position: relative; background: #222; box-shadow: 0px 2px 5px 0px red; text-align: center; float: left; background-color: #010000; color: white; }
这个修改不会影响你的视差效果——视差元素(.Para)继承了body的3D变换属性,依然能正常工作,而导航栏则被强制保持在视口固定位置。
内容的提问来源于stack exchange,提问作者Didier2791
相关产品推荐
相关产品推荐

