其他分享
首页 > 其他分享> > css box-shadow blur 重绘导致动画卡顿

css box-shadow blur 重绘导致动画卡顿

作者:互联网

问题

在开发可拖动切换page的面板(类似安卓viewpager、前端swiper.js)时,发现给元素设置了box-shadow后拖动时和释放后的动画都很卡顿。
通过注释代码发现,是box-shadow 的 blur 属性影响了动画。

原因

究其原因,是拖动元素时,位置的改变引发了图形的重绘。
因为浏览器的图形绘制算法是按照像素定位元素,并基于该位置绘制。当元素位置发生改变,也就引发了图形的重绘

解决发方案

  1. 在css禁止该组件下的所有额外的图形选项。比如 .selector * {box-shadow: none;filter: none;}
  2. 在js中通过添加和移选择器,来动态改变其图形选项
    .moving * {box-shadow: none;filter: none;}
    在 ontouchstart 添加选择器,在ontouchend移除选择器
  3. 还有更多图形选项,自行添加

标签:box,none,重绘,选择器,blur,shadow,图形,卡顿
来源: https://www.cnblogs.com/chaihuibin/p/16344048.html