keslo: в полтора :) Это графики на jsperf такие ущербные.
Но в данном случае важны не разы, а миллисекунды - что один, что другой вариант выполнятся за 1-2 мс, так что разницей в производительности между этими вариантами можно смело пренебречь.
keslo: на самом деле, как раз медленнее, именно это меня и удивило. Но разница там незначительная - даже в самом худшем случае вы сможете свою таблицу перерисовать 500 раз за секунду :)
keslo: Потому что $cells - это вообще все ячейки всех строк и индекс там может быть гораздо больше, чем количество классов. Поэтому мы в качестве индекса класса используем остаток от деления индекса ячейки на количество классов - по сути перебираем от 0 до 3: 0, 1, 2, 3, 0, 1, 2, 3 и т.д.
Попробуйте вывести в консоль index и index % classes.length на каждой итерации и сами все увидите.
keslo: он понятен за счет хороших названий переменных, но вот трюк с остатком от деления может кого-нибудь смутить. Хотя, это довольно распространенный прием.
nfobdw143: дело в том, что с debounce не нужно разбираться, нужно понять концепцию и использовать готовую оттестированную функцию. Один раз разобрались - level up. А вот в этом велосипеде действительно нужно разбираться, понимать как он работает, а если он не дай бог не работает, дебажить его.
nfobdw143: Я понимаю, что из документации, но в обработчик вам приходит jquery-event, в нем нет никакого deltaY, поэтому и нужно обращаться к originalEvent. Выведите в консоль event.deltaY - он всегда undefined.
1. Однобуквенные названия - очень плохо. Вы уже через месяц не вспомните что эти буквы значат.
2. event.originalEvent.deltaY, а не event.deltaY
3. Вот так читабельнее:
$(window).on('mousewheel', function (event) {
if (!f) {
return;
}
if (event.originalEvent.deltaY < 0) {
owl.next();
} else {
owl.prev();
}
s();
});
4. Самый главный минус этого решения - полная неподдерживаемость. Debounce - это стандартное решение, знакомое многим программистам, а в этой системе флагов и таймеров нужно разбираться (однобуквенные названия, как я уже писал, ничуть в этом не помогают). Я даже не уверен, что это решение не имеет багов - его невозможно протестировать.