是什么导致此代码中断页面?

时间:2019-04-14 03:26:24

标签: jquery scrolltop

我下面有一个用于断开头的插件。基本上,该插件使引导程序的导航栏在断点后浮动。它非常简单,但是有些让我印象深刻的也许是您之一可以帮助我解决问题。

在代码中,我有var newBP。现在,如果我添加Math.round,它可以解决问题。但是,如果我取出Math.round,它将在99处显示新的断点。但是,如果浏览器无法滚动到那么远,则您每次尝试滚动时页面都会不断地反弹。添加Math.floor,页面滚动良好。有什么想法吗?

要清楚,我不需要解决方案,更清楚原因是什么。

主插件

(function($){

$.fn.navBar1 = function( options ){
    var elm = this;
    var doc = $(document);
    var scrollPos = 0;

    var o = $.extend({
        scrollable: false,
        breakPoint: 0
    }, options );

    (function(){

        if( o.breakPoint === 0 ){
            var outerHeight = parseInt(elm.height());
            var newBP = Math.floor(outerHeight * 1.5);

            o.breakPoint = newBP;
        }


    })();

    console.log(o.breakPoint);
    if( o.scrollable == true ){
        $( window ).scroll(function(){
            let scrollPos = $(window).scrollTop();

            if( scrollPos > o.breakPoint ){
                elm.addClass('fixed-top');
            }

            if( scrollPos <= o.breakPoint ){
                elm.removeClass('fixed-top');
            }
        });
    }

}

}(jQuery))

0 个答案:

没有答案