Javascript 数学是CSS';在JS中计算比数学快?

Javascript 数学是CSS';在JS中计算比数学快?,javascript,css,css-variables,Javascript,Css,Css Variables,例如,如果我想以60fps的速度更新CSS值,那么在JS中执行类似于setCSS(I*10+'px')的操作或者在CSSproperty:calc(10px*var(--I))中执行类似操作会更快吗?我不认为速度是决定使用哪个选项的问题。任何支持calc()的客户机都会很快,速度的快慢取决于具体的实现 选择其中一个的原因不是速度,而是灵活性和您的用例calc()将您限制为硬编码值,这在某些情况下非常适合,而JavaScript允许您引用值。当然CSS变量也会出现,但它们还没有出现,甚至当它们出现

例如,如果我想以60fps的速度更新CSS值,那么在JS中执行类似于
setCSS(I*10+'px')
的操作或者在CSS
property:calc(10px*var(--I))
中执行类似操作会更快吗?

我不认为速度是决定使用哪个选项的问题。任何支持
calc()
的客户机都会很快,速度的快慢取决于具体的实现


选择其中一个的原因不是速度,而是灵活性和您的用例
calc()
将您限制为硬编码值,这在某些情况下非常适合,而JavaScript允许您引用值。当然CSS变量也会出现,但它们还没有出现,甚至当它们出现时,拥有JS语言的全部功能和完整的DOM API也很重要。

我不认为速度是决定使用哪个的问题。任何支持
calc()
的客户机都会很快,速度的快慢取决于具体的实现


选择其中一个的原因不是速度,而是灵活性和您的用例
calc()
将您限制为硬编码值,这在某些情况下非常适合,而JavaScript允许您引用值。当然CSS变量会出现,但它们还没有出现,甚至当它们出现的时候,拥有JS语言的全部功能和完整的DOM API也很重要。

这在很大程度上取决于您的DOM树和标记,而不是JS与CSS。 如果您计划更改的元素确实有子元素,则更改的成本将很高

如果更改“布局”属性,使其改变元素的几何图形,如其宽度、高度或左上角的位置,浏览器将必须检查所有其他元素并“回流”页面。任何受影响的区域都需要重新绘制,最终绘制的元素需要重新组合在一起

有关网页呈现的更多信息,请访问

还有关于css CAL和变量vs js的信息和一些测试

这在很大程度上取决于您的DOM树和标记,而不是JS与CSS。 如果您计划更改的元素确实有子元素,则更改的成本将很高

如果更改“布局”属性,使其改变元素的几何图形,如其宽度、高度或左上角的位置,浏览器将必须检查所有其他元素并“回流”页面。任何受影响的区域都需要重新绘制,最终绘制的元素需要重新组合在一起

有关网页呈现的更多信息,请访问

还有关于css CAL和变量vs js的信息和一些测试

这一差异可能是微不足道的,以至于你写这个问题所花的时间可能会使你失去找到答案的任何好处。因为你提到了60fps,所以听起来你所关心的动画性能不是很好。如果是这种情况,请查看使用css
translate
属性。某些东西的动画效果不好,例如高度、宽度、使用
绝对值的任何位置(上、左、右、下)等等。什么是
setCSS()
?@isherwood loops like OP只是使用setCSS作为示例的理论js函数。您应该使用带有计时逻辑的
requestAnimationFrame
,以60 fps的速度获得平滑动画。这是一个用于react组件的装饰器,用于执行平滑的动画,是的,您可以一次运行多个,并且不会阻塞。这假设您知道属性的开始和结束位置,如果您不知道,您可以将其修改为不确定。差异的可能重复可能是微不足道的,因此,您编写此问题所花费的时间可能会损失找到答案的任何好处。因为你提到了60fps,所以听起来你所关心的动画性能不是很好。如果是这种情况,请查看使用css
translate
属性。某些东西的动画效果不好,例如高度、宽度、使用
绝对值的任何位置(上、左、右、下)等等。什么是
setCSS()
?@isherwood loops like OP只是使用setCSS作为示例的理论js函数。您应该使用带有计时逻辑的
requestAnimationFrame
,以60 fps的速度获得平滑动画。这是一个用于react组件的装饰器,用于执行平滑的动画,是的,您可以一次运行多个,并且不会阻塞。这假设您知道属性的开始和结束位置,若不知道,您可以将其修改为不确定。@TemaniaAfif的可能复制量是多少?在大多数情况下,难以察觉的数量,这就是为什么使用的答案不是基于速度。因此,我的答案非常简短。对不起,对你来说时间太长了。@Temaniaafif多少钱?在大多数情况下,难以察觉的数量,这就是为什么使用的答案不是基于速度。因此,我的答案非常简短。对不起,对你来说太长了。