Javascript.RU

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

Помогите со скроллингом, очень нужно...
Есть такая функция:
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">
Если возможно, помогите пожалуйста. Очень нужно
Ответить с цитированием
  #2 (permalink)  
Старый 26.07.2009, 20:01
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

сравнивай scrollHeight и offsetHeight
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2009, 21:38
Новичок на форуме
Отправить личное сообщение для vestris Посмотреть профиль Найти все сообщения от vestris
 
Регистрация: 26.07.2009
Сообщений: 3

Если правильно понимаю, как-то так -

if(document.getElementById('page').scrollHeight < document.getElementById('page').offsetHeight) {...} 

else { 

document.getElementById('scroll-up').style.display = 'none';
}



или иначе ?
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2009, 04:34
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

а почему бы не попробовать
p.s. а как на счет overflow: auto; ?
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2009, 04:59
Новичок на форуме
Отправить личное сообщение для vestris Посмотреть профиль Найти все сообщения от vestris
 
Регистрация: 26.07.2009
Сообщений: 3

Кажется разобрался.
Несколько иначе (однако также через offsetHeight), теперь всё работает почти как надо.
Появился вопрос с "скрытыми" div-ами... они занимают на странице место несмотря на $('#scroll').hide(); и создают ненужные отступы; Пытаюсь решить сие через position: absolute и z-index (дизайн фиксированный - позволяет, если по другому никак...)

Вам спасибо!!
Ответить с цитированием
  #6 (permalink)  
Старый 29.07.2009, 23:04
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от vestris
они занимают на странице место несмотря на $('#scroll').hide();
не должны

Сообщение от vestris
и создают ненужные отступы
покажи
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите настроить скрипт раскрывающегося меню melomanfm Работа 6 10.08.2009 01:21
помогите задать селектор! mkrylov jQuery 2 28.06.2009 20:34
Помогите с двумя очень простыми вопросами XoD Общие вопросы Javascript 4 10.06.2009 21:08
Помогите разобраться со скриптом! Чайник Элементы интерфейса 1 13.03.2009 23:57
Помогите сделать программу расчета зарплаты сотрудникам Юлия29 Общие вопросы Javascript 1 22.02.2009 23:11