簡體   English   中英

(Javascript)平滑滾動鼠標滾輪

[英](Javascript) Smooth scrolling mousewheel

在我的網站上(仍在建設中-忘記域名-和廣告。這是臨時的) -http://davidsthilaire.comule.com我已經使用它來實現平滑的鼠標滾輪滾動。

<script>
        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 / 60;
        wheel = true;

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

但是,自從我添加了這段代碼和jquery-1.8.3.js插件以來,當我將瀏覽器最小化時,我無法一直向下滾動到頁面底部。雖然移動設備..我不知道為什么它不能直接向下滾動到台式機頁面的底部。.有誰知道解決方法嗎? 我會很感激。

您的代碼在滾動時會觸發很多動作...一遍又一遍地使用stop函數只是為了在1毫秒后開始另一個動畫....每當動畫仍在播放時就升旗

 if (animate) return;

 $($.browser.webkit ? 'body' : 'html').stop().animate({
    scrollTop: $scrollTop + 'px'
 }, 3000, 'easeOutQuint', function() 
 {
    animate = false;
    wheel = false;
 });
 animate = true;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM