2016-12-17 4 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

Я обновил свой ответ. вам просто нужно изменить одну переменную. – ab29007

+0

Также используйте свойство transform в css вашего заголовка, чтобы оно происходило плавно, не так внезапно. – 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'); 
    } 
});