【问题标题】:CSS translate3d is very jumpy on Safari 8CSS translate3d 在 Safari 8 上非常跳跃
【发布时间】:2015-01-17 14:59:29
【问题描述】:

我正在研究一个简单的视差行为,像 Skrollr 之类的库对于这种行为来说太过分了。我已经取得了一些非常棒的进展,并且在 Chrome 和 Firefox 中运行良好,但在 OSX Safari 8 中移动显得非常跳跃。

如果有人能提供一些关于如何使这一切变得更顺畅的见解,我很乐意听到。我很惊讶 Safari 中会发生这种情况,因为我预计与 Chrome 有类似的性能。

我在这里发布了一个演示,其中仅包含重要部分 - http://playground.philsmartdesign.com.au/work/requestAnimationFrame/

Javascript:

(function (window, document, $, undefined) {
    "use strict";

    var $window = $(window),
        $document = $(document);

    $document.ready(function () {

        var $image = $('#move-me');

        // Method 1 : Using requestAnimationFrame - very jumpy in Safari 8
        function raf_handler(timestamp) {
            move_image();
            window.requestAnimationFrame(raf_handler);
        }
        window.requestAnimationFrame(raf_handler);

        // Method 2 : Binding to scroll event - a little bit smoother, but still jumpy in Safari 8
        //$window.on('scroll', move_image);

        function move_image(){
            var transform = 'translate3d(0px,' + ($window.scrollTop() * 1.3) + 'px, 0px)'; // 3d transform
            //var transform = 'translate(0px,' + ($window.scrollTop() * 1.3) + 'px)'; // 2d transform
            $image[0].style.webkitTransform = transform;
            $image[0].style.MozTransform = transform;
            $image[0].style.msTransform = transform;
            $image[0].style.OTransform = transform;
            $image[0].style.transform = transform;
        }

    });

})(window, document, jQuery);

【问题讨论】:

  • 我有同样的问题,有什么解决方法吗?在 Safari 中似乎是一个非常具体的问题:/

标签: javascript css safari transform parallax


【解决方案1】:

在 Safari 中确实非常令人兴奋,就像其他任何东西一样...... 我建议尝试 position: absolute;和顶部:*px;

【讨论】:

  • 感谢您的建议 - 不幸的是,结果或多或少是一样的。
猜你喜欢
  • 2017-03-16
  • 1970-01-01
  • 2018-12-08
  • 2015-08-02
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多