2010-06-16 2 views
2

Мне нужно проверить, есть ли элемент в пикселях x в нижней части страницы, чтобы динамически загружать новый контент. в настоящее время scrollTop и высота не совпадают, даже если панель находится внизу.Проверка находится рядом/внизу страницы

jquery разрешен, хотя базовый javascript будет более полезен.

+0

Пользуется Бесконечную Scroll (http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/) плагин не может быть и речи? – Mottie

ответ

1

Вы можете попробовать следующее (проверено в Firefox 3.5 и IE 8 только):

function pollScrollPosition() { 
    var y = (document.all) ? document.body.scrollTop : window.pageYOffset; 
    var max = window.scrollMaxY || 
      (document.body.scrollHeight - document.body.clientHeight); 

    if ((max - y) < 100) { 
     console.log('Within the bottom 100 pixels. Do Something!'); 
    } 
} 

// Check the scroll position every 250ms 
setInterval(pollScrollPosition, 250); 

Скриншот из приведенного выше примера в Firebug:

Checking is near/at the bottom of the page http://img10.imageshack.us/img10/7767/scrolltop.jpg

+0

Имей, извините, им пользуюсь браузер webkit. «window.scrollMaxY» не определено, и (document.body.scrollHeight - document.body.clientHeight) = 0. Его довольно сбивает с толку, потому что clientHeight отличается от тела по сравнению с другими элементами. – tcooc

+1

@ DanielVassallo Это, похоже, больше не работает. Это всегда говорит мне, что я нахожусь в нижней части страницы, даже когда я нахожусь на вершине действительно длинной страницы. запись значений делает его похожим на то, что все они получают высоту страницы, а не там, где пользователь находится на странице. – michaellindahl

+0

Я упростил код и только что создал этот 'var pixelsFromBottom = document.body.scrollHeight - (y + window.innerHeight);' – michaellindahl

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