Не скролит элемент
Добрый вечер!
Проблема возникла: не получается проскролить элемент. Вот код: 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, время: 17:24. |