Performance 对于绝对定位HTML元素,是否有css样式的替代方案?
我正在使用ReactJS编写一个基本的HTML5画布组件,允许用户拖动对象。我正在为每个对象设置一个带有{left,top}的内联样式,以将其绝对定位在父容器中。问题是,当我拖动对象时,移动事件触发得太快,以至于在每个对象上设置样式需要太长时间,并且存在明显的延迟 我运行了Chrome profiler,设置样式比我程序中的其他操作花费的时间多得多。我想知道是否有更好的方法来绝对定位性能方面的元素 问题是,当我拖动/移动对象时,移动事件触发得太快,以至于在每个对象上设置样式花费的时间太长,并且移动有明显的延迟 使用节流阀过于频繁地优化移动事件触发,如以下问题所示: 使用一系列可以切换的类名,而不是内联样式,如下所示: 或者通过CSSOM编辑样式表中的单个类,如下所示: 问题是,当我拖动/移动对象时,移动事件触发得太快,以至于在每个对象上设置样式花费的时间太长,并且移动有明显的延迟 使用节流阀过于频繁地优化移动事件触发,如以下问题所示: 使用一系列可以切换的类名,而不是内联样式,如下所示: 或者通过CSSOM编辑样式表中的单个类,如下所示:Performance 对于绝对定位HTML元素,是否有css样式的替代方案?,performance,reactjs,html5-canvas,drag,inline-styles,Performance,Reactjs,Html5 Canvas,Drag,Inline Styles,我正在使用ReactJS编写一个基本的HTML5画布组件,允许用户拖动对象。我正在为每个对象设置一个带有{left,top}的内联样式,以将其绝对定位在父容器中。问题是,当我拖动对象时,移动事件触发得太快,以至于在每个对象上设置样式需要太长时间,并且存在明显的延迟 我运行了Chrome profiler,设置样式比我程序中的其他操作花费的时间多得多。我想知道是否有更好的方法来绝对定位性能方面的元素 问题是,当我拖动/移动对象时,移动事件触发得太快,以至于在每个对象上设置样式花费的时间太长,并且移
如果可以,请发布相关代码。它可能有一些低效的地方,只有一双新的眼睛才能看到。不要使用
顶部
和左侧
,使用转换:翻译(x,y)
因为它使用gpu,所以速度要快得多。不,问题不在于CPU性能。问题是设置样式非常慢。我想知道是否有一种方法可以在不设置样式的情况下改变绝对位置。我考虑过在元素上使用数据属性来执行类似{left:attr('data-x');}的操作,但这不起作用。如果可以,请发布相关代码。它可能有一些低效的地方,只有一双新的眼睛才能看到。不要使用顶部
和左侧
,使用转换:翻译(x,y)
因为它使用gpu,所以速度要快得多。不,问题不在于CPU性能。问题是设置样式非常慢。我想知道是否有一种方法可以在不设置样式的情况下改变绝对位置。我考虑过在元素上使用数据属性来执行类似{left:attr('data-x');}的操作,但这不起作用。