【问题标题】:Parallax effect is interfering with smooth scrolling effect视差效果干扰平滑滚动效果
【发布时间】:2013-03-05 23:41:41
【问题描述】:

好的,所以我通过将所有内容从容器 div“框”中取出并从(窗口)调用 java 调用滚动条数据来解决平滑滚动问题——并通过添加使视差在 firefox 中工作-moz-transform 而不是只使用 webkit,谢谢 ahren –

我一直致力于重新设计网络标签以产生视差效果。这是我到目前为止所做的链接:

http://www.sasparillarootcoyote.com/parallax_experiment/index2.html链接不可用

我已经让视差效果完全按照我想要的方式工作,却发现它在 Firefox 中根本不起作用。任何人都知道如何在不使用完全不同的方法来创建视差效果的情况下解决此问题?

这是视差脚本——我使用的是 JQuery 8.1.3

<script>

    $(document).ready(function () {

        $("#box").scroll(function () {
            s = $("#box").scrollTop();
            $("#hideedges").css("-webkit-transform","translateY(" +  (s/1)  + "px)");
            $("#thumb1").css("-webkit-transform","translateY(" +  (s/1.6)  + "px)");
            $("#thumb2").css("-webkit-transform","translateY(" +  (s/2)  + "px)");
            $("#thumb3").css("-webkit-transform","translateY(" +  (s/4)  + "px)");
            $("#thumb4").css("-webkit-transform","translateY(" +  (s/24)  + "px)");
            $("#thumb5").css("-webkit-transform","translateY(" +  (s/50)  + "px)");
            $("#thumb6").css("-webkit-transform","translateY(" +  (s/16)  + "px)");
            $("#thumb7").css("-webkit-transform","translateY(" +  (s/24)  + "px)");
            $("#thumb8").css("-webkit-transform","translateY(" +  (s/9)  + "px)");
            $("#thumb9").css("-webkit-transform","translateY(" +  (s/3)  + "px)");
            $("#thumb10").css("-webkit-transform","translateY(" +  (s/44)  + "px)");
            $("#thumb11").css("-webkit-transform","translateY(" +  (s/9)  + "px)");
            $("#thumb12").css("-webkit-transform","translateY(" +  (s/500)  + "px)");
            $("#thumb13").css("-webkit-transform","translateY(" +  (s/24)  + "px)");
            $("#thumbcolor13").css("-webkit-transform","translateY(" +  (s/1.6)  + "px)");
            $("#thumbcolor1").css("-webkit-transform","translateY(" +  (s/2)  + "px)");
            $("#thumbcolor2").css("-webkit-transform","translateY(" +  (s/4)  + "px)");
            $("#thumbcolor3").css("-webkit-transform","translateY(" +  (s/24)  + "px)");
            $("#thumbcolor4").css("-webkit-transform","translateY(" +  (s/50)  + "px)");
            $("#thumbcolor5").css("-webkit-transform","translateY(" +  (s/16)  + "px)");
            $("#thumbcolor6").css("-webkit-transform","translateY(" +  (s/24)  + "px)");
            $("#thumbcolor7").css("-webkit-transform","translateY(" +  (s/9)  + "px)");
            $("#thumbcolor8").css("-webkit-transform","translateY(" +  (s/100)  + "px)");
            $("#thumbcolor9").css("-webkit-transform","translateY(" +  (s/44)  + "px)");
            $("#thumbcolor10").css("-webkit-transform","translateY(" +  (s/9)  + "px)");
            $("#thumbcolor11").css("-webkit-transform","translateY(" +  (s/500)  + "px)");
            $("#thumbcolor12").css("-webkit-transform","translateY(" +  (s/24)  + "px)");

        })

    })

</script>

感谢大家的帮助

【问题讨论】:

  • 你需要限制你的滚动处理程序......它在 Firefox 中不起作用的原因是因为你的 CSS 只使用了 webkit 前缀......
  • 不相关,但您可以通过将具有相同值$('#thumb2, #thumbcolor1').css(...的元素分组来压缩此代码
  • @Shmiddty 并缓存那些选定的元素!
  • 视差效果很好,只是图像没有向下滚动页面。同意 Shmiddty 的冷凝和 Matt 的缓存。
  • 缓存实际上可以显着提高性能。

标签: javascript jquery firefox parallax


【解决方案1】:

添加

position: fixed;
top: 0;

到您的#one img 将始终将图像保留在屏幕上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2014-11-18
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多