gpt4 book ai didi

javascript - jquery scrollTop 在 IE 8 中的表现

转载 作者:数据小太阳 更新时间:2023-10-29 06:13:37 26 4
gpt4 key购买 nike

我正在使用 jQuery .scrollTop 在 div 中滚动图像。它在 Firefox 中运行良好——滚动非常流畅和快速。在 IE 8 中,滚动非常缓慢且有故障 - 图像大约一秒滚动一次 - 两秒。图像大小平均在 2000 * 2000 和 4000 * 4000 像素之间。

有没有办法针对 IE 8 改进这一点?

IE 7 的性能稍好一些,但仍不够好。

谢谢

编辑: 我认为问题在于 IE 7 和 8 中的滚动是如何实现的。我启用了两个滚动条(overflow-x 和 overflow-y),并且我尝试了滚动使用这些滚动条的图像。问题是完全一样的。我试过在功率相当低的 PC 上运行此程序 - 几年前的奔腾双核 2 GB RAM 以及 Core i7 台式机,2.8GHz CPU 1600Mhz RAM,结果几乎相同。 FireFox 滚动速度更快,但它的 CPU 使用率平均比 IE CPU 使用率高 10%。这让我感到困惑……微软现在肯定已经解决了这个问题吗?

我发现的另一件有点奇怪的事情是滚动在 Core 2 Duo 笔记本电脑上运行得更快。我想知道这是否与显卡驱动程序有关...IE 7/8 甚至使用 GPU 吗?

对不起,如果这听起来很傻,但我真的很想解决这个问题......IE 不会那么糟糕......

最佳答案

jQuery 的 .scrollTop()在 ie 中是出了名的慢,如果标记稍微复杂或大,你永远不会让它表现良好。

解决方案是不使用 jQuery .scrollTop()函数,但基于 native 属性构建您自己的 .scrollHeight.scrollTop .

原因在于 ie 计算偏移量的方式,这是 jquery 的 .scrollTop() 的基础缓慢 - 你必须遍历 DOM 树并计算 ie 中每个父级的偏移量。

jQuery 尽其所能地做到了这一点,但你总是能够更快地完成它,因为你提前知道标记并可以对其进行优化 - 你甚至可以在大部分时间提前进行偏移计算,只需使用常量作为修饰符。

总而言之,这可能不是 jQuery 的错——它可能只是 ie 渲染管道的问题——取决于你如何制作标记和样式,滚动可能会强制 ie 完全重新渲染/重绘页面你滚动的每个像素,这都会减慢它的速度。

关于javascript - jquery scrollTop 在 IE 8 中的表现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4368229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com