gpt4 book ai didi

javascript - jQuery scrollTop 直到滚动后才更新

转载 作者:行者123 更新时间:2023-11-28 08:24:59 26 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,我正在努力解决。

我有一个简单的整页滚动网站,我试图通过使用 jQuery scrollTop 在页面滚动时应用 top 值来模仿 position:fixed 在某些元素上。

p>

此过程在 Chrome 和 FF 中运行良好,但在 Safari(桌面和 iOS)以及 Chrome (Android) 中滚动非常不稳定。

我已经在桌面上检查了 Safari 中的代码,看起来与 Chrome 和 FF 不同,scrollTop 值直到之后才应用于 top滚动已经完成,这导致了抖动。

这是可以纠正的吗?

这是我正在使用的小 JS 片段,以及指向示例的链接 Fiddle

var fullHeight = $(window).height();
$('.panel').height(fullHeight);

$(window).scroll(function () {

var text = $('.text');
var textOffset = text.offset();
var textViewOffset = $(document).scrollTop();

$('.text').css({
'top': textViewOffset
});
$('.panel:nth-child(2) .text').css({
'margin-top': -fullHeight
});
$('.panel:nth-child(3) .text').css({
'margin-top': (-fullHeight) * 2
});

});

最佳答案

尝试 $(window).scroll(function () { console.log('scrolled'); }); 你会发现它在 chrome 中只记录一次,在 chrome 中更频繁firefox,就是这个问题。

  1. 在一些旧的 chrome 浏览器中,您可以在设置中启用 smoothscroll。
  2. 使用 smoothscroll 插件。
  3. 摆脱 $(window).scroll 并制作一个每 1-2 毫秒触发一次的函数

关于javascript - jQuery scrollTop 直到滚动后才更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28558867/

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