Javascript 更快的滚动事件背景“;“跳跃”;滚动后

Javascript 更快的滚动事件背景“;“跳跃”;滚动后,javascript,jquery,css,Javascript,Jquery,Css,我有个小问题。 我试着做一些类似于视差背景的事情。 在我的第一次尝试中,我得到了一些有效的东西,但它可以工作得更好。 当我滚动时,背景位置会改变。问题是它在滚动后几毫秒会发生变化,所以我可以看到滚动后背景是如何“跳跃”的 代码: 有什么建议吗? 谢谢 编辑 看看这个例子: (向下滚动直到看到背景图像) 我认为问题在于0.5。当您计算新位置时,上一个位置和新位置之间的差异足以使其成为可感知的移动 将0.5更改为0.2或更低会使这一点最小化,但是视差效果不太明显-这不是您想要的 我会尝试另一种方法—

我有个小问题。 我试着做一些类似于视差背景的事情。 在我的第一次尝试中,我得到了一些有效的东西,但它可以工作得更好。 当我滚动时,背景位置会改变。问题是它在滚动后几毫秒会发生变化,所以我可以看到滚动后背景是如何“跳跃”的

代码:

有什么建议吗? 谢谢

编辑

看看这个例子: (向下滚动直到看到背景图像)

我认为问题在于0.5。当您计算新位置时,上一个位置和新位置之间的差异足以使其成为可感知的移动

将0.5更改为0.2或更低会使这一点最小化,但是视差效果不太明显-这不是您想要的

我会尝试另一种方法——以GitHubs 404页面为例:

  • 使用“固定”背景
  • 背景位置的位移应远大于滚动(不是0.5而是0.01) 问题似乎只发生在FF中。这是重新查找页面和javascript的速度最慢的浏览器

  • 关键是要使用固定的背景,如果你必须让它平滑。看

    参考资料:

    本页似乎很好地解释了垂直视差效果的工作原理:

    也看看这个(他们不使用固定背景…注意它看起来有点像你的):

    此处可以找到导致功能出现问题的Nike代码:问题是关于我当前尝试中的性能问题:/切换到位置:修复了阻止浏览器在通过Javascript处理标签之前重新绘制标签的问题,这就是为什么它可以防止神经质——但它会带来你需要处理的非琐碎的复杂问题。它的水平位置现在相对于视口,而不是文档或定位的容器,因此水平滚动和浏览器宽度可能会出现新问题。
    var $w = $(window);
    function move($c) {
        var scroll = $w.scrollTop();
        var diff = $c.offset().top - scroll;
        var pos = '50% ' + (-diff)*0.5 + 'px';
        $c.css({'backgroundPosition':pos});
    }
    $w.bind('scroll', function(e){
        move(some_container);
    });
    
    var pos = '50% ' + (-diff)*0.5 + 'px';