【发布时间】:2019-08-15 00:11:13
【问题描述】:
el.style.top = document.body.scrollTop + 'px';
我正在使用它来锁定某些 TH 元素的垂直滚动。 这行代码似乎具有指数运行时复杂性。当我锁定 10 个元素时,它工作得很好。 30个元素,它仍然响应但非常糟糕。 60 个元素,它变得无响应。
如果您想知道的话。不,我没有重复调用它。每次滚动恰好调用 3 次。
已解决:问题出在 document.body.scrollTop 中。尝试使用预先计算的值在页面上上下滚动元素后,它很流畅,但是当将该虚拟调用添加到同一函数中时,它变得无响应。
【问题讨论】:
-
将值保存在变量中,而不是一遍又一遍地查找。
-
为什么每次滚动调用3次,10到30个元素怎么变成
el?请发布完整的代码。 -
线路本身不应该很慢。至少直到成千上万的元素。你怎么称呼它?
-
@slebetman 访问
.scrollTopmight trigger a reflow,导致它比预期慢得多 -
你们是对的。我尝试通过设置
el.style.top = savedPos + weight在页面上下滚动 60 个元素,并且运行顺利,所以我的问题要么在document.body.scrollTop中,要么在其他地方的逻辑错误。谢谢。
标签: javascript performance scroll-lock