使用较新版本的jQuery打破平滑滚动脚本

时间:2014-12-11 15:43:09

标签: jquery scroll easing

我有这个非常简单的脚本,用于简化我网站上的鼠标滚轮滚动。它适用于jQuery 1.8.3,但完全不适用于2.0.1,这是我在我的网站上已有的另一个脚本。我想知道这个脚本的原因是什么原因可能不适用于更新版本的jQuery?

FIDDLE WIT IT

jQuery.extend(jQuery.easing, {
    easeOutQuint: function(x, t, b, c, d) {
        return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
    }
});

var wheel = false,
    $docH = $(document).height() - $(window).height(),
    $scrollTop = $(window).scrollTop();

$(window).bind('scroll', function() {
    if (wheel === false) {
        $scrollTop = $(this).scrollTop();
    }
});
$(document).bind('DOMMouseScroll mousewheel', function(e, delta) {
    delta = delta || -e.originalEvent.detail / 3 || e.originalEvent.wheelDelta / 120;
    wheel = true;

    $scrollTop = Math.min($docH, Math.max(0, parseInt($scrollTop - delta * 30)));
    $($.browser.webkit ? 'body' : 'html').stop().animate({
        scrollTop: $scrollTop + 'px'
    }, 500, 'easeOutQuint', function() {
        wheel = false;
    });
    return false;
});

1 个答案:

答案 0 :(得分:1)

就是这一行

$($.browser.webkit ? 'body' : 'html').stop().animate({ ...
早在jQuery 1.3中,jQuery的$.browser就被弃用了,最后在jQuery 1.9中删除了

你可以这样做

$('body, html').stop().animate({ ....

FIDDLE