html页面滚动时元素错位解决方案

  一个布局较复杂的页面,在手机浏览器上运行时,部分配置比较差的手机会出现滚动滚动条后,页面正常滚动,但部分元素却出现类似position:fixed一般悬浮在页面上,然后再滚动。看上去有点像视差滚动,但却一点都不好看。

解决方法:在滑动体上添加样式:transform:translateZ(0);-webkite-transform:translateZ(0)。

<div style="height:300px;overflow:auto">
    <div style="transform:translateZ(0);-webkite-transform:translateZ(0);">
          各种复杂的html  
    <div>
</div>

  加这个的目的是利用GPU加速(GPU缓存)。

  因为这个问题也发现,如果使用overflow:auto这样来滑动页面(html的滚动条形式),每次页面滑动时浏览器都会有频繁的scroll、update layer tree、composite layers。应是在最后一个环节上出了问题。这个问题的原因应该是在布局方式上。

posted @ 2015-04-22 13:38  ASER_1989  阅读(1491)  评论(1编辑  收藏  举报