Performance 对于绝对定位HTML元素,是否有css样式的替代方案?

Performance 对于绝对定位HTML元素,是否有css样式的替代方案?,performance,reactjs,html5-canvas,drag,inline-styles,Performance,Reactjs,Html5 Canvas,Drag,Inline Styles,我正在使用ReactJS编写一个基本的HTML5画布组件,允许用户拖动对象。我正在为每个对象设置一个带有{left,top}的内联样式,以将其绝对定位在父容器中。问题是,当我拖动对象时,移动事件触发得太快,以至于在每个对象上设置样式需要太长时间,并且存在明显的延迟 我运行了Chrome profiler,设置样式比我程序中的其他操作花费的时间多得多。我想知道是否有更好的方法来绝对定位性能方面的元素 问题是,当我拖动/移动对象时,移动事件触发得太快,以至于在每个对象上设置样式花费的时间太长,并且移

我正在使用ReactJS编写一个基本的HTML5画布组件,允许用户拖动对象。我正在为每个对象设置一个带有{left,top}的内联样式,以将其绝对定位在父容器中。问题是,当我拖动对象时,移动事件触发得太快,以至于在每个对象上设置样式需要太长时间,并且存在明显的延迟

我运行了Chrome profiler,设置样式比我程序中的其他操作花费的时间多得多。我想知道是否有更好的方法来绝对定位性能方面的元素

问题是,当我拖动/移动对象时,移动事件触发得太快,以至于在每个对象上设置样式花费的时间太长,并且移动有明显的延迟

使用节流阀过于频繁地优化移动事件触发,如以下问题所示:

使用一系列可以切换的类名,而不是内联样式,如下所示:

或者通过CSSOM编辑样式表中的单个类,如下所示:

问题是,当我拖动/移动对象时,移动事件触发得太快,以至于在每个对象上设置样式花费的时间太长,并且移动有明显的延迟

使用节流阀过于频繁地优化移动事件触发,如以下问题所示:

使用一系列可以切换的类名,而不是内联样式,如下所示:

或者通过CSSOM编辑样式表中的单个类,如下所示:


如果可以,请发布相关代码。它可能有一些低效的地方,只有一双新的眼睛才能看到。不要使用
顶部
左侧
,使用
转换:翻译(x,y)
因为它使用gpu,所以速度要快得多。不,问题不在于CPU性能。问题是设置样式非常慢。我想知道是否有一种方法可以在不设置样式的情况下改变绝对位置。我考虑过在元素上使用数据属性来执行类似{left:attr('data-x');}的操作,但这不起作用。如果可以,请发布相关代码。它可能有一些低效的地方,只有一双新的眼睛才能看到。不要使用
顶部
左侧
,使用
转换:翻译(x,y)
因为它使用gpu,所以速度要快得多。不,问题不在于CPU性能。问题是设置样式非常慢。我想知道是否有一种方法可以在不设置样式的情况下改变绝对位置。我考虑过在元素上使用数据属性来执行类似{left:attr('data-x');}的操作,但这不起作用。