Javascript.RU

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

Граница использования animate()
Привет народ. Начал изучать jquery, и в связи с этим масса вопросов.

Использую animate для прокрутки списка фотографий. См. пример тут. Внизу списка фотографий есть кнопка для прокрутки списка.
Столкнулся с вопросом, как сделать ограничение на прокрутку, т.е. не прокручивать, когда фотографии закончились??

Я конечно могу подсчитать кол-во фотографий, и после нажатия определенного количества раз на кнопку прокрутки делать ее неактивной. Но думается мне, что есть более ровный метод, используя возможности самого jQuery?
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2010, 12:06
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Возможно как-то так:
$("#photo_preview_down").click(function(){
      $inner = $(".photo_preview_inner");
      var top = $inner.position().top; // смещение вверх
      var height = $inner.height(); // высота блока с фотками
      var h0 = 436; // высота контейнера (для примера тут значением а вообще вычислять где то заранее глобально)
      if (height + top > h0) {
          $inner.animate({"top": "-=109px"}, "normal");
      }    
    });
Ответить с цитированием
  #3 (permalink)  
Старый 02.03.2010, 12:35
Интересующийся
Отправить личное сообщение для Petka Посмотреть профиль Найти все сообщения от Petka
 
Регистрация: 02.03.2010
Сообщений: 10

о, круто, спасибо. Еще доделал, чтобы в обратную сторону листалось, а h0 устанавливалось из стиля.

Только такой глюк, если быстро нажимать на стрелку, то оно проскочит потом дальше чем надо. Как-то можно лочить кнопку, до окончания выполнения эффекта?
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2010, 15:19
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

конечно можно, выставляй флаг при начале анимации и сбрасывай при окончании.
Ответить с цитированием
  #5 (permalink)  
Старый 02.03.2010, 15:28
Интересующийся
Отправить личное сообщение для Petka Посмотреть профиль Найти все сообщения от Petka
 
Регистрация: 02.03.2010
Сообщений: 10

Сообщение от micscr Посмотреть сообщение
конечно можно, выставляй флаг при начале анимации и сбрасывай при окончании.
Можешь привести пример? Или укажи плиз в какую сторону копать?
Ответить с цитированием
  #6 (permalink)  
Старый 02.03.2010, 15:33
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

var flag = true; // можно нажимать
$("#photo_preview_down").click(function(){
      if (!flag) return;
      $inner = $(".photo_preview_inner");
      var top = $inner.position().top; // смещение вверх
      var height = $inner.height(); // высота блока с фотками
      var h0 = 436; // высота контейнера (для примера тут значением а вообще вычислять где то заранее глобально)
      if (height + top > h0) {
          flag = false; // нельзя нажимать
          $inner.animate({"top": "-=109px"}, "normal", function(){flag = true;});
      }   
    });
Ответить с цитированием
  #7 (permalink)  
Старый 02.03.2010, 15:51
Интересующийся
Отправить личное сообщение для Petka Посмотреть профиль Найти все сообщения от Petka
 
Регистрация: 02.03.2010
Сообщений: 10

Круто, спасибо.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическая отправка формы через JavaScript без использования body onload pavluxa09 Общие вопросы Javascript 0 17.11.2009 15:55
Не работает пример использования AJAX nuker AJAX и COMET 4 19.03.2009 18:31