2012-02-08 2 views
1

Я использую Ariel Flesler's awesome scrollto plugin. Но я хочу определить, когда плагин завершил прокрутку. Скорость прокрутки установлена ​​на 800 на моей странице. Как я могу это сделать?Как определить, когда jQuery.ScrollTo закончил плавную прокрутку

Я пробовал:

 isScrolling = true; 
     jQuery(listWrapper).scrollTo(theId, 800); 
     isScrolling = false; 

Но, кажется, как будто isScrolling = false получает набор до завершения прокрутки.

В дополнение к этому у меня есть JavaScript, прикрепленный к событию scrollto. Прокрутка замедляется до болезненной скорости, потому что она пытается сделать гладкую прокрутку и запустить событие прокрутки одновременно. Я надеялся эффективно отключить событие прокрутки во время прокрутки и снова включить его, когда прокрутка завершена.

ответ

3

Плагин имеет функцию обратного вызова, которая вызывается, когда анимация закончена:

onAfter: A function to be called after the whole animation ended. 
+0

Я не видел этого в документации ха-ха. благодаря! @Sorin S. – Hoppe

0

Предполагая, что вы используете this scrollTo plugin, есть onAfter вариант, который принимает функцию, чтобы выполнить один раз прокрутка завершена.

2

Используйте событие onAfter, которое запускается после завершения прокрутки, которое также является третьим аргументом плагина scrollTo в качестве функции обратного вызова. Попробуй это.

isScrolling = true; 
    jQuery(listWrapper).scrollTo(theId, 800, function(){ 
     isScrolling = false; 
    }); 
+0

Спасибо за образец кода! @ShankarSangoli – Hoppe

+0

хорошее решение .. – Farhan