Тот же вопрос отвечает в jQuery, но я ищу решение без jQuery. Откуда вы знаете, что полоса прокрутки достигла нижней части страницы
Я хотел бы знать , как я могу определить, достиг ли вертикальная полоса прокрутки до нижней части веб-страницы.
Я использую Firefox3.6
Я написал простой цикл Javascript для прокрутки вниз на 200 пикселей, и когда полоса прокрутки достигла нижней части страницы, я хочу остановить цикл.
Проблема scrollHeight() возвращает 1989.
И внутренний цикл scrollTop
увеличивается на 200 за итерацию.
200 ==> 400 ==> 600 .... 1715
И с 1715 года он не будет увеличиваться, чтобы этот цикл продолжался навсегда.
Похоже, scrollHeight() и scrollTop() не подходят для сравнения, чтобы определить фактическое положение полосы прокрутки? Как узнать, когда цикл должен остановиться?
код:
var curWindow = selenium.browserbot.getCurrentWindow();
var scrollTop = curWindow.document.body.scrollTop;
alert('scrollHeight==>' + curWindow.document.body.scrollHeight);
while(curWindow.document.body.scrollHeight > curWindow.document.body.scrollTop) {
scrollTop = curWindow.document.body.scrollTop;
if(scrollTop == 0) {
if(window.pageYOffset) { //firefox
alert('firefox');
scrollTop = window.pageYOffset;
}
else { //IE
alert('IE');
scrollTop = (curWindow.document.body.parentElement) ? curWindow.document.body.parentElement.scrollTop : 0;
}
} //end outer if
alert('current scrollTop ==> ' + scrollTop);
alert('take a shot here');
selenium.browserbot.getCurrentWindow().scrollBy(0,200);
} //end while