在页面上放了一个div,作为导航,需要其随着页面滑动而跟着滑动,position 设置的是 absolute,随着页面滚动修改其 top 值,在谷歌、火狐浏览器,div的滑动都挺平滑的,但是在ie 上面,会有一种抖动的感觉,页面滑动时,导航div也不停的上下抖动,虽然幅度不算太大,但是看着很不舒服,这种事怎么处理啊??
在页面上放了一个div,作为导航,需要其随着页面滑动而跟着滑动,position 设置的是 absolute,随着页面滚动修改其 top 值,在谷歌、火狐浏览器,div的滑动都挺平滑的,但是在ie 上面,会有一种抖动的感觉,页面滑动时,导航div也不停的上下抖动,虽然幅度不算太大,但是看着很不舒服,这种事怎么处理啊??
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
没怎么搞过ie兼容,但Google查了一下似乎是以下原因引起,解决方案如下,希望对对楼主有帮助。
原因:IE有一个多步的渲染进程。当你滚动或调整你的浏览器大小的时候,它将重置所有内容并重画页面,这个时候它就会重新处理css表达式。这会引起一个丑陋的“振动”bug,在此处固定位置的元素需要调整以跟上你的(页面的)滚动,于是就会“跳动”
解决方案:解决此问题的技巧就是使用background-attachment:fixed为body或html元素添加一个background-image。这就会强制页面在重画之前先处理CSS。因为是在重画之前处理CSS,它也就会同样在重画之前首先处理你的CSS表达式。这将让你实现完美的平滑的固定位置元素!