Scroll Skrollr:平滑滚动

Scroll Skrollr:平滑滚动,scroll,parallax,smooth,skrollr,Scroll,Parallax,Smooth,Skrollr,我想在转动鼠标滚轮时实现平滑滚动。目前,当我转一圈时,滚动条有点跳跃,动画有点跳跃 这种行为的例子: 只能使用skrollr实现此滚动吗?如果是,怎么做? 我尝试了以下代码 var s = skrollr.init({ render: function(data) { //Debugging - Log the current scroll position. console.log(data.curTop); },

我想在转动鼠标滚轮时实现平滑滚动。目前,当我转一圈时,滚动条有点跳跃,动画有点跳跃

这种行为的例子:

只能使用skrollr实现此滚动吗?如果是,怎么做? 我尝试了以下代码

var s = skrollr.init({
render: function(data) {

            //Debugging - Log the current scroll position.
            console.log(data.curTop);
        },

        smoothScrolling: true,
        smoothScrollingDuration: 500,
                    easing: {
            WTF: Math.random,
            inverted: function(p) {
                return 1-p;
            }
        }
    });
但这没什么区别。动画稍微平滑一点(即背景滑动一段时间然后停止),但滚动本身仍然不稳定


我更愿意用skrollr解决这个问题,因为我认为它已经准备好了,而不是添加另一个插件。

这是引用Petr Tichy():

对于平滑动画,请设置廉价属性的动画

当你继续只制作廉价的CSS动画时,你会得到最好的效果 财产

  • 变换:比例(1.2)
  • 转换:translateX(100px)
  • 变换:旋转(90度)
  • 不透明度:0.5
这4个属性将允许您更改大小、位置和旋转 以及元素的不透明度

这些CSS属性的组合将使您能够创建漂亮的 你们中的大多数人都有自己的想法,并且会得到最好的结果

如果您遇到滞后和起伏的滚动动画,请给出 动画元素变换:translateZ(0)

这将使元素升级为复合层,并将其删除 滞后的原因


尝试包含此脚本

jQuery(function () {

        var $window = jQuery(window);
        var scrollTime = 0.5;
        var scrollDistance = 150;


        $window.on("mousewheel DOMMouseScroll", function (event) {

            event.preventDefault();

            var delta = event.originalEvent.wheelDelta / 120 || -event.originalEvent.detail / 3;
            var scrollTop = $window.scrollTop();
            var finalScroll = scrollTop - parseInt(delta * scrollDistance);

            TweenMax.to($window, scrollTime, {
                scrollTo: {
                    y: finalScroll,
                    autoKill: true
                },
                ease: Power1.easeOut,
                overwrite: 5
            });

        });

    });
我也有这个问题(Mac上的Chrome)

我通过这个插件解决了:


$.srSmoothscroll();

这不适用于skrollr选项。
<!-- After jQuery -->
<script src="jquery.mousewheel.min.js"></script>
<script src="jquery.simplr.smoothscroll.min.js"></script>
<script type="text/javascript">$.srSmoothscroll();</script>