css 使用过多position定位元素,造成拖拽卡顿,如何解决?

  1. 在做一个元素的拖拽的时候,对关闭图标和右键弹出层使用了position:absolute来相对于父元素(即每一个应用)进行定位。再通过mousedownmousemovemouseup三个事件来实现拖拽的逻辑,这样实现之后,发现当元素过多时,拖拽会卡顿。

  2. 如下面图片所示:
    image.png
阅读 2.8k
1 个回答

position: absolute 来实现元素的拖拽每次拖拽操作都需要对受影响元素进行新的布局计算和渲染,会有性能问题, 题主已经出现了, JavaScript线程在执行拖拽操作的同时,还需要同时处理其他UI更新:

  • 使用transform属性代替left/top定位方式,减少重排重绘的频率, 例如:transfrom: translate(x, y);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题