Не скролит элемент
Добрый вечер!
Проблема возникла: не получается проскролить элемент. Вот код:
var i = 0;
var textBlock;
function init()
{
document.getElementById(0).hidden = false;
textBlock = document.getElementById(0);
}
function scrollBarPosition()
{
if(textBlock.scrollTop >= textBlock.offsetHeight-document.documentElement.clientHeight)
{
showNextTextBlock();
}
} Сначала вызывается init(), затем вторая функция. Почему-то textBlock.scrollTop всегда равняется 0, хотя визуально элемент прокручивается...
|
Цитата:
|
Странно, у меня он определяется.
|
Без разницы, так тоже нет: alert(document.getElementById("b_" + i).scrollTop);
|
<div id="div" />
<script>
var div = document.getElementById('div'), i = 100;
while(i--) {
div.parentNode.insertBefore(document.createElement('br'), div);
}
// прокручиваем вниз
window.scrollTo(0, document.documentElement.scrollHeight);
// прокручиваем вверх
document.onclick = function() {
*!*
window.scrollTo(0, document.documentElement.srollTop);
*/!*
};
</script>
|
Не понял к чему предыдущий код. У меня скрипт сообщает мне, что элемент ДИВ не прокручен (всегда 0), хотя я его прокрутил. В общем, если не сложно, исправьте плиз мое творение.
var i = 0;
var textBlock;
function scrollBarPosition() //вызывается при событии onscroll
{
//alert(textBlock.scrollTop); //всегда 0...
if(textBlock.scrollTop >= textBlock.offsetHeight-document.documentElement.clientHeight)
{
showNextTextBlock();
}
else if(textBlock.scrollTop <= document.documentElement.clientHeight)
{
showPrevTextBlock();
}
if(textBlock.scrollTop > textBlock.offsetHeight)
{
i++;
textBlock = document.getElementById("b_" + i);
}
else if(textBlock.scrollTop < -document.documentElement.clientHeight)
{
i--;
textBlock = document.getElementById("b_" + i);
}
}
function showPrevTextBlock()
{
if(i-1 >= 0) document.getElementById("b_" + i-1).hidden = false;
document.getElementById("b_" + i+1).hidden = true;
}
function showNextTextBlock()
{
if(i-1 >= 0) document.getElementById("b_" + i-1).hidden = true;
document.getElementById("b_" + i+1).hidden = false;
}
function init() //при загрузки страницы вызывается эта функция
{
document.getElementById("b_" + 0).hidden = false;
textBlock = document.getElementById("b_" + 0);
}
|
Если кому-то интересно зачем так изгаляться, то объясняю. Это скрипт для читалки книг. Чтобы книга быстрее отображалась на экране, быстрее менялось расположение слов и предложений при изменении шрифта и размер окна. И суть такова: по мере прокрутки(в зависимости от направления) появляется следующий блок текста, и исчезает тот, который уже не виден на экране.
|
Никто не поможет?
|
не на тот элемент смотрите. я с этим 3 раза точно сталкивался
вот небольшой пример. надеюсь, вам что-нибудь прояснит. обработчики навешаны на оба элемента. |
| Часовой пояс GMT +3, время: 23:13. |