Как выполнить обратный вызов jQuery один раз, когда прокрутка остановлена - PullRequest
1 голос
/ 30 июня 2011

Итак, я точно определил событие прокрутки в TinyScrollbar (http://www.baijs.nl/tinyscrollbar/js/jquery.tinyscrollbar.js)) и хочу выполнить обратный вызов, чтобы уменьшить прозрачность полосы прокрутки.

Я думал использовать setTimeout и clearTimeout будет работать, и это вроде как работает, но, похоже, вызывает функцию столько раз, сколько oScrollbar.obj.css({opacity:1});, но после задержки в 1000 мс, установленной задержкой тайм-аута.

Это вызывает эффект мерцания.

oScrollbar.obj.css({opacity:1});
console.log('Scrolling');
clearTimeout(fade);

var fade = setTimeout( function() {
    console.log('Scroll Stopped');
    oScrollbar.obj.stop().fadeTo(300,0)
    }, 1000);

Есть ли лучший способ выполнить функцию только один раз после того, как событие перестало быть вызванным?

...