Javascript 破碎视差卷轴

Javascript 破碎视差卷轴,javascript,jquery,html,css,parallax,Javascript,Jquery,Html,Css,Parallax,最近,我注意到我的视差代码做了一个奇怪的从左到右的抖动运动。代码非常简单: $(window).scroll(function(){ var body = $('body'); var top = $(this).scrollTop(); $('.carousel-inner img').css('top', top / 2); }); 在这个演示中可以看到同样的抖动问题 为什么会这样?浏览器呈现滚动事件的方式是否已更改?如何修复它,使其不再抖动?这是几个月前才开始

最近,我注意到我的视差代码做了一个奇怪的从左到右的抖动运动。代码非常简单:

$(window).scroll(function(){
    var body = $('body');
    var top = $(this).scrollTop();
    $('.carousel-inner img').css('top', top / 2);
}); 
在这个演示中可以看到同样的抖动问题

为什么会这样?浏览器呈现滚动事件的方式是否已更改?如何修复它,使其不再抖动?这是几个月前才开始的,以前很顺利

我的标记看起来像这样

确切的问题是BG图像的初始定位,特别是如果您正在遵循您提供的示例中的代码

因此,目前的初始位置是:

background: url('/assets/example/bg_blueplane.jpg') no-repeat center center fixed;
但是,当应用新样式时,“中心”定位将重置,并相对于窗口顶部重新定位。事实上,我很确定这会发生在您提供的示例中的其他图像上,只是我们在开始滚动时看不到它们


去掉最初的定位,你就会得到你想要的效果

问题在于原始位置和应用新CSS样式后的位置之间的差异。因此,如果图像的“顶部”最初是偏移的,那么在第一次运行此函数时,这些都会丢失。你能提供图像最初放置的HTML/CSS吗?对不起,我不够清楚,我没有关注我发布的演示,我只是想找一个演示来直观地显示确切的问题。在我的示例中,我的图像本身是一个图像标记,而不是具有背景属性的div。我的标记是这样的——请发布您的代码,而不是完全无关的代码。我的解决方案解决了您提供的示例中的问题。这是我能提供的唯一方向。我只将视差滚动应用于背景定位。该链接是将视差滚动应用于img元素的答案,如下所示: