jquery – 在当前查看元素上方插入新部分时保持scrollTop(无毛刺)

前端之家收集整理的这篇文章主要介绍了jquery – 在当前查看元素上方插入新部分时保持scrollTop(无毛刺)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这里有一个真正的JQuery UI天才:我们有一个非常长的形式,按需加载部分(例如,当点击索引/导航时,或当我们在当前部分的边缘滚动时).

当我在当前查看的部分下面加载部分时,这不会影响当前滚动(即scrollTop)位置,但是当我在当前查看部分上方插入新部分时,它当然会将查看的内容推下来.

我们需要保持相对于当前部分的scrollTop位置.我们还需要在进行调整时避免显示跳跃/毛刺.

我们正在考虑的选项:

>加载内容并根据加载项目的高度调整scrollTop位置(这可能会因为DOM更改可能比scrollTop调整慢得多而出现故障).
>在屏幕外加载新部分,测量高度.然后插入该部分并按该量调整scrollTop(由于DOM更新,可能仍然是故障).
>将要加载的部分设置为较大的固定高度(例如100/1000像素)并调整scrollTop以匹配,以便当前视图不会移动.将内容加载到该部分,然后测量实际的新内容高度并移除固定高度,同时调整scrollTop以匹配实际高度.
>不要使用传统的滚动,而是编写一个自定义滚动条,它保持自己的相对偏移并将现有的部分分开以适应新的部分.然后问题就是编写自定义滚动条替换(对于像我们正在使用的nicescroll这样的东西).
>暂时将当前查看区域的位置更改为绝对位置(根据屏幕偏移计算的位置),将其从流程中取出.更新其后面的父滚动窗口内容,然后在重新计算新的scrollTop后再次使查看的部分相对.
>我们没有想过的其他事情?

我想要一些实际上必须解决这个问题的人提出一些建议.重要的是屏幕不会出现故障,因此应避免将scrollTop同步到缓慢的DOM更新.

对拟议解决方案的建议或意见?是否有可以执行此操作的滚动替换?

如果你无法解决它,但认为它值得解决,请考虑提升,这样我就可以获得大笔奖金!

猜你在找的jQuery相关文章