Closed viktoriya-ch closed 5 years ago
Скорее всего, не учтено смещение курсора относительно бегунка.
Нет, оно учтено:
const position = horizontal
? handleX + moveEvent.clientX - mouseX
: handleY + moveEvent.clientY - mouseY;
Буду смотреть ещё, пока не совсем ясно, в чём там дело.
Разобрался - дело в том, что у меня там есть ещё перемещение по клику. А mouseup как раз вызывает событие click, причём остановить это стандартными preventDefault/stopPropagation нельзя. Сделал установку булевой переменной и её проверку - не сильно красиво, но работает.
Забыл ещё событие очистить - теперь должно работать.
Все еще странно себя ведет: бегунок бежит быстрее мыши, останавливается например на значении 52, после отпускания мыши перескакивает на 59, и т.д.
У меня сейчас не перескакивает. Это в каком браузере? И я ещё не выкладывал на gh-pages.
Я проверяю на локалке. Браузер Хром.
Похоже проблема бьла в смещении относительно ширины ползунка - исправил в коммите с вынесением handleDrag в HandleView.
Да, теперь правильно передвигается
Если установлен размер шага 1, то после клика и перетаскивания бегунок дергается. Скорее всего, не учтено смещение курсора относительно бегунка. О том, как это исправить, можно почитать у Кантора (про shiftX, shiftY): https://learn.javascript.ru/drag-and-drop-objects