Плагин jquery mousewheel: как запускать только одну функцию при каждой прокрутке - PullRequest
3 голосов
/ 04 января 2011

Я использую плагин moushweel, потому что я хочу, чтобы мой пользователь запускал действие каждый раз, когда он прокручивается вверх или вниз, но я не хочу иметь множественные огни (если у вас есть волшебная мышь с яблоком, это еще хуже, потому что она слишком чувствительна))

есть идеи, как это предотвратить?

это код

jQuery(function($) {
    $('div.mousewheel_example')
        .bind('mousewheel', function(event, delta) {
            var dir = delta > 0 ? 'Up' : 'Down',
                vel = Math.abs(delta);
            $(this).text(dir + ' at a velocity of ' + vel);
            return false;
        });
});

это страница плагина http://brandonaaron.net/code/mousewheel/demos

Ответы [ 2 ]

1 голос
/ 04 января 2011

Вы можете попробовать поиграть с window.setTimeout . Может быть, вытаскивая вложенную функцию и используя что-то прокси-функцию с таймером. Пример:

var timer; 

function proxyFunction(){
  clearTimeout(timer);
  timer = setTimeout("mouseWheelAction", 1);
}

Это не остановит срабатывание события, но остановит выполнение вашей функции при каждом срабатывании события.

0 голосов
/ 12 марта 2011

Зик, понял.Если вы запускаете анимацию внутри, просто предварите ее с помощью .stop (), чтобы она выглядела как

$('#findme').stop().animate(...);
...