Помогите со скроллингом, очень нужно...
Есть такая функция:
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, время: 09:46. |