Некорректная работа слайдера - js
При перемещении по слайдеру через лкм + drag (влево, вправо) начинает тормозить слайдер: не сильно, но не заметить невозможно. Догадываюсь, что комп не вывозит нагрузку, создаваемую через event mousemove. Как спасаться?
const select = (s) => document.querySelector(s);
var start = 0;
var p = 0;
var move = false;
select(".showcase").addEventListener("mousedown", drag_start, false);
select(".showcase").addEventListener("mouseup", drag_stop, false);
select(".showcase").addEventListener("mousemove", drag, false); // предполагаемый корень проблемы
select(".showcase").addEventListener("mouseleave", drag_stop, false);
function drag_stop() {
move = false;
};
function drag_start(e) {
start = e.screenX;
move = true;
};
function drag(e) {
if (move) {
p = e.screenX;
let computedStyle = getComputedStyle(select(".showcase"));
left = Number(computedStyle.left.slice(0, -2)) + (p - start);
select(".showcase").style.left = left + "px";
start = e.screenX;
};
};
Пробовал добавлять задержку перед выполнением drag, но в пустую. (P.s, есть ли нормальный способ делать табуляцию при вставке кода на SO? - через tab не работает...)
Ответы (1 шт):
Автор решения: Alex
→ Ссылка
На следующий день проблема решилась сама собой - зависания практически полностью пропали. Скорее всего дело, как я и догадывался, в производительности машинки, с которой смотришь сайт.