Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2011, 23:29
Интересующийся
Отправить личное сообщение для ацкий Посмотреть профиль Найти все сообщения от ацкий
 
Регистрация: 23.08.2011
Сообщений: 28

Не скролит элемент
Добрый вечер!
Проблема возникла: не получается проскролить элемент. Вот код:
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, хотя визуально элемент прокручивается...
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2011, 23:47
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от ацкий
document.getElementById(0);
id у элементов не может начинаться с числа
Ответить с цитированием
  #3 (permalink)  
Старый 24.08.2011, 09:21
Интересующийся
Отправить личное сообщение для ацкий Посмотреть профиль Найти все сообщения от ацкий
 
Регистрация: 23.08.2011
Сообщений: 28

Странно, у меня он определяется.
Ответить с цитированием
  #4 (permalink)  
Старый 24.08.2011, 09:43
Интересующийся
Отправить личное сообщение для ацкий Посмотреть профиль Найти все сообщения от ацкий
 
Регистрация: 23.08.2011
Сообщений: 28

Без разницы, так тоже нет: alert(document.getElementById("b_" + i).scrollTop);
Ответить с цитированием
  #5 (permalink)  
Старый 24.08.2011, 10:30
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<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>
Ответить с цитированием
  #6 (permalink)  
Старый 24.08.2011, 10:46
Интересующийся
Отправить личное сообщение для ацкий Посмотреть профиль Найти все сообщения от ацкий
 
Регистрация: 23.08.2011
Сообщений: 28

Не понял к чему предыдущий код. У меня скрипт сообщает мне, что элемент ДИВ не прокручен (всегда 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); 
}

Последний раз редактировалось ацкий, 24.08.2011 в 10:50.
Ответить с цитированием
  #7 (permalink)  
Старый 24.08.2011, 10:56
Интересующийся
Отправить личное сообщение для ацкий Посмотреть профиль Найти все сообщения от ацкий
 
Регистрация: 23.08.2011
Сообщений: 28

Если кому-то интересно зачем так изгаляться, то объясняю. Это скрипт для читалки книг. Чтобы книга быстрее отображалась на экране, быстрее менялось расположение слов и предложений при изменении шрифта и размер окна. И суть такова: по мере прокрутки(в зависимости от направления) появляется следующий блок текста, и исчезает тот, который уже не виден на экране.
Ответить с цитированием
  #8 (permalink)  
Старый 24.08.2011, 21:16
Интересующийся
Отправить личное сообщение для ацкий Посмотреть профиль Найти все сообщения от ацкий
 
Регистрация: 23.08.2011
Сообщений: 28

Никто не поможет?
Ответить с цитированием
  #9 (permalink)  
Старый 25.08.2011, 01:14
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

не на тот элемент смотрите. я с этим 3 раза точно сталкивался

вот небольшой пример. надеюсь, вам что-нибудь прояснит.

обработчики навешаны на оба элемента.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10
Как передать элемент в переменную из функции kichSman jQuery 3 12.07.2011 22:16
перенести элемент в другой контейнер debugx jQuery 2 02.06.2011 15:53
Как узнать содержит ли DOM определенный элемент Ruslan Events/DOM/Window 8 12.03.2010 22:02
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06