Помогите со скроллингом, очень нужно...
Есть такая функция:
var i=0;
var scroll_break=1;
function scroll_up(){
if (i>=40)
i=i-40;
else if (i<40 && i>=0)
i=0;
document.getElementById('page').scrollTop=i;
if (scroll_break)
setTimeout('scroll_up();', 100);
else
scroll_break=1;
}
function scroll_down(){
var scroll=document.getElementById('page').scrollTop;
if ((i-5)<=scroll)
i=i+40;
else if ((i-5)>scroll)
i=scroll;
document.getElementById('page').scrollTop=i;
if (scroll_break)
setTimeout('scroll_down();', 100);
else
scroll_break=1;
}
function scroll_breaker(){
scroll_break=0;
}
Далее в тексте вызывается через onmousedown="scroll_up();" onmouseup="scroll_breaker();" onmousedown="scroll_down();" Нужно сделать так чтобы скроллинг автоматически исчезал в случае если текст (содержимое) целиком умещается в видимой области. В html для скроллинга используется два класса соответственно Код:
<div class="scroll-up">Код:
<div class="scroll-down">Код:
<div id="page"> |
сравнивай scrollHeight и offsetHeight
|
Если правильно понимаю, как-то так -
if(document.getElementById('page').scrollHeight < document.getElementById('page').offsetHeight) {...}
else {
document.getElementById('scroll-up').style.display = 'none';
}
или иначе ? |
а почему бы не попробовать ;)
p.s. а как на счет overflow: auto; ? |
Кажется разобрался. :dance:
Несколько иначе (однако также через offsetHeight), теперь всё работает почти как надо. Появился вопрос с "скрытыми" div-ами... они занимают на странице место несмотря на $('#scroll').hide(); и создают ненужные отступы; Пытаюсь решить сие через position: absolute и z-index (дизайн фиксированный - позволяет, если по другому никак...) Вам спасибо!! |
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 06:49. |