Я пытаюсь сделать автоматический прокручиваемый div, который доходит до вершины, когда он достигнет конца. Но это не работает ...Как получить реальную высоту прокрутки div (скажем, внутренний размер текста)
function scrollPannel()
{
var pannel = document.getElementById('pannel');
if (typeof scrollPannel.count == 'undefined')
{
scrollPannel.count = 0;
}
else
{
scrollPannel.count += 2;
}
// trouble is here
if ((scrollPannel.count - pannel.scrollHeight) > pannel.clientHeight)
{
scrollPannel.count = 0;
}
pannel.scrollTop = scrollPannel.count;
setTimeout('scrollPannel()', 500);
}
HTML:
<div id='pannel' style="height:200px;overflow:auto" onmouseover="sleepScroll()">
<p>...</p><!-- long text -->
</div>
И после того, мне нужно будет найти способ остановить прокрутку, когда "OnMouseOver" встречается,.
EDIT: Я не объяснил проблему четко. На самом деле, я пробовал что-то вроде:
if (scrollPannel.count > pannel.scrollHeight)
{
scrollPannel.count = 0;
}
Проблема в том, что scrollHeight кажется большим, чем внутренний текст div. Таким образом, уходит много времени, чтобы вернуться к вершине.
Поэтому мне нужно свойство element, из которого я мог бы использовать значение для сравнения с моей переменной count. Однако я не знаю Javascript много, и я ничего не мог найти. Надеюсь, это так же просто, как я думаю об этом.
Что такое функция sleepscroll()? –
sleepScroll() - это функция для реализации, которую я бы использовал, чтобы остановить прокрутку на событии «onmouseover». В моем случае, я думаю, это будет простой вызов clearTimeout(). – kirly