2014-11-13 2 views
2

Я видел несколько похожих вопросов, но они не дали мне решения. Я хочу, чтобы мой нижний колонтитул (slideUp) достиг нижнего края страницы и снова спрятался при прокрутке вверх. Теперь я использую скрипт, который показывает нижний колонтитул после определенного количества прокрутки.Показывать внизу страницы

Fiddle Здесь

Кто-нибудь знает как?

$(window).scroll(function() { 
if ($(this).scrollTop() > 10) { 
    $('footer').slideDown(300); 
} else { 
    console.log('there'); 
    $('footer').slideUp(300); 
} 
}); 

ответ

0

var height; 
 
    var trigger = 350; 
 
    $(window).scroll(function() { 
 
     height = $(document).height()-$(window).height(); 
 
     console.log(height+" "+$(this).scrollTop()); 
 
    \t if ($(this).scrollTop() > height - trigger) { 
 
    \t \t $('footer').slideDown(300); 
 
    \t } else { 
 
    \t \t $('footer').slideUp(300); 
 
    \t } 
 
    });

Для лучшей производительности, положить РАСЧЕТ высоты окна и высоту документа за пределами функции прокрутки и запустить его вместо того, чтобы сразу после загрузки ($(){}) и пересчитать его при изменении размера окна ($(window).resize(function(){})

+0

Спасибо, помощник! Я думаю, что это работает лучше для меня. Это не так чувствительно, когда вы достигаете дна и переключаете скрыть/показать/скрыть/показать и т. Д. Еще раз спасибо! – KP83

0

Сравнить $(this).scrollTop() в окно/высота тела, а не фиксированное значение.

2

Попробуйте эту проверку рабочего jsfiddle

$(window).scroll(function() { 
     if ($(window).scrollTop() + $(window).height() == $(document).height()) { 
      $('footer').slideDown(300); 
     } else { 
      $('footer').slideUp(300); 
     } 
    }); 
+1

Спасибо, помощник за скрипку! – KP83

Смежные вопросы