2015-09-09 2 views
0

Я пишу немного веб-приложение в JavaScript, и я использую TUIO объект для выполнения прокрутки сортируемых списка в JQuery.scrollTop ++ цикл в Javascript

Мои действия находятся в операторе else if, поскольку предыдущие были определены для других объектов, которые выполняют другие действия. Текущее действие работает, но делает это только один раз, как будто мне приходилось многократно нажимать кнопку, чтобы снова выполнить действие. Я пытаюсь сделать так, чтобы действие scrollTop запустилось до тех пор, пока оно не достигнет нижней или верхней части содержимого, а не просто выполнит одно действие.

Вот что у меня есть:

else if (objectId == 6 && rotation) { 

      if (rotation > 20 && rotation < 95) { 

       console.log ("Scroll Down Action");     
       $('#sortable').animate({scrollTop: '+=5px'}, 10); 

      } 
      else if (rotation > 273 && rotation < 340) { 

       console.log ("Scroll Up Action");     
       $('#sortable').animate({scrollTop: '-5px'}, 10); 
      }; 

Подобно тому, как дополнительный набор informaiton, я использую Fajran's TUIO JS library.

Большое спасибо заранее!

+1

Почему не просто 'scrollTop' в верхней и нижней части документа, кроме того, что он увеличивает или уменьшает на 5 пикселей каждый раз? –

+0

Существует длинный список изображений, которые я хочу, чтобы пользователь смотрел в своем собственном темпе. Если он идет до самого конца, у пользователя не будет возможности остановиться в определенной части списка. – Trinker

ответ

0

Хорошо, друг только что прислал мне ответ.

Сначала создать глобальную функцию, которая выполняет .animate свиток и детектирует scrollTop в DIV:

var scroller = function(){ 

var scrolly = $('#sortable').scrollTop(); 
    if (rotation > 20 && rotation < 95) { 
      console.log ("Spinnin Up");          
      $('#sortable').animate({scrollTop: scrolly + 10}, 1, scroller) 

    } 
    else if (rotation > 273 && rotation < 340) { 
      console.log ("Spinning Down"); 
      $('#sortable').animate({scrollTop: scrolly - 10}, 1, scroller) 
    }; 
}; 

После этого вызовите функцию в if заявлении

... 

else if (objectId == 6 && rotation) { 
      scroller(); 
}); 

Кроме того, для по какой-то причине, если я не использую .animate, функция не работает. Но в любом случае, это работает сейчас.