Ответ на тот же вопрос в 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