获得过 0 次赞
回答过的问题获得 0 次赞
分享过的文章/案例获得 0 次赞
评论与回复获得 0 次赞
参照你的方法,解决了我的问题,赞!!!
小程序调用boundingClientRect等获取元素位置信息很慢如题,我要实现一个sticky组件,需要在onPageScroll中调用boundingClientRect获取元素的位置信息,但是 现在有一个问题: 如果页面慢慢滚动的话,能在4ms内获取到元素位置信息,看起来过渡就很流畅; 而如果一下子将页面滚动到顶部或者底部(页面到头后会超出可滚动区域然后回弹一下),这个时候获取位置信息就会很慢,平均500ms,有时候是1700ms,这会导致过渡的时候有一个卡顿。 下图console中打印的是我滚动页面时,每次调用boundingClientRect前和执行boundingClientRect的回调函数之间的时间差,可以看到,有时候很快(2、30、80ms),有时候就很慢(315、1367、1900ms)。 [图片] [图片] 我已经给onPageScroll事件设置了debounce,保证滚动结束后100ms后才调用boundingClientRect。 我上传了一个代码片段,复现步骤是:滚动的稍微慢点,或者特别快(我也不知道具体是什么情况下)多试试。它有时候获取得很快,都在10ms内: [图片] 有时候就获取得很慢,是1000ms以上: [图片] 请问这是什么原因?
2021-08-15