2016-12-17 8 views
0

私はブートストラップ用の単純なスティッキープラグインアドオンを開発中です。基本的には、次のように動作します。ブートストラップスティッキ(固定)アラートがスクロールダウンを防ぎます

if ($(this).scrollTop() < ScrollPastOffset) { 
     console.log("max it"); 
     $(fixedAlertWrappers).removeClass('scroll'); 
    } else { 
     console.log('min it'); 
     $(fixedAlertWrappers).addClass('scroll'); 
    } 

しかし、あなたは警告を過ぎてスクロールしようとすると、それはグリッチが発生すると、あなたがScrollPastOffsetで設定した値を超えて、下にスクロールさせません。ここでのデモ:https://jsfiddle.net/09kh5rp9/

答えて

0

あなたの変数ScrollPastOffsetニーズ変更するには、コンテンツの高さは、あなただけのこの変数を編集する必要があなたのケースでは

var topDist = $("a.btn").position(); 
if (scroll > topDist.top){ 
    console.log("max it"); 
    $(fixedAlertWrappers).removeClass('scroll'); 
} 
else { 
    console.log('min it'); 
    $(fixedAlertWrappers).addClass('scroll'); 
} 

が増加したときに、コードの残りの部分は同じ

var ScrollPastOffset = $("a.btn").position().top; 

ですここに仕事がありますpen

+0

これにより、ページの上部にスクロールすると、最大化されません。 – SISYN

+0

私は自分の答えを更新しました。 1つの変数を変更するだけです。 – ab29007

+0

また、ヘッダーのcssでtransformプロパティを使用すると、突然スムーズに行われるようになります。 – ab29007

0

簡単な解決策:

$(window).scroll(function() { 
    var elm = $('.fixed-alert-wrapper'); 
    if ($(this).scrollTop() < 150) { 
     if (elm.hasClass('scroll')) 
      elm.removeClass('scroll'); 
    } else { 
     if (!elm.hasClass('scroll')) 
      elm.addClass('scroll'); 
    } 
}); 
関連する問題