То, что я пытаюсь сделать, это перемещать элемент, пока пользователь прокручивается вверх или вниз. У меня есть механика этого в функции, называемой goTo(). Я также пытаюсь отслеживать, где пользователь использует переменную. Когда пользователь прокручивается вверх или вниз, переменная поднимается или опускается на одну. Эта функция выглядит так:
$(window).on('DOMMouseScroll mousewheel', function(event){
clearTimeout($.data(this, 'timer')); // NEW CODE
$.data(this, 'timer', setTimeout(function() { // NEW CODE
if( event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0 )
{
--curScl;
goTo(curScl);
} else {
++curScl;
goTo(curScl);
}
}, 250)); // NEW CODE
});
ОБНОВЛЕНИЕ: По совету @Bart Jedrocha я добавил обертку setTimeout
, которая сохраняет значение curSel
от skyrocketing с каждым прокруткой. Тем не менее, существует задержка между тем, когда выполняется прокрутка, и когда элемент перемещается. Это очень неестественно. Есть ли способ сделать это без задержки?