Нет таких событий.
1. На документ вешается слушатель события mousedown, в нём ставите флаг = true.
2. На документ(или на общий элемент оборачивающий все интересующие элементы) вешается слушатель mousemove, в нём проверяется установлен ли флаг из п.1. Если флаг === true, делаем что нас интересует.
3. На документ вешается слушатель события mouseup, в нём флаг устанавливается в false.
SpiderPigAndCat, У вас там какое-то безумие: вы на каждый mousemove добавляетеещё один обработчик. Оператива не резиновая и закончится быстро при таком раскладе. Изучите что такое addEventListener('click') и чем он отличается от onclick.
SpiderPigAndCat, Это не называется работает, это называется хаос без малейшего понимания происходящего.
Я уже описал алгоритм пашагово - там слушается всё, что должно слушаться.
Пашенька, выше ссылка на песочницу и ссылка на часть статьи. В чем хаос? отслеживание движения мышки на каждом элементе, на котором и должно быть прослушивание?
SpiderPigAndCat, в песочнице нет никакого кода, там просто разметка, что я там должен увидеть?
Вы вообще читаете, что я написал?
У вас там какое-то безумие: вы на каждое событие mousemove добавляете ещё один обработчик.
Поставьте консоль.лог на mousemove, сколько записей в консоли увидите столько у вас обработчиков клика будет на элементах, врубаетесь? А должно быть в самом худшем случае 4 (равное кол-ву элементов). А вообще по-научному – только 1.
SpiderPigAndCat,
1. На документ вешается слушатель события mousedown, в нём ставите флаг = true.
2. На документ(или на общий элемент оборачивающий все интересующие элементы) вешается слушатель mousemove(over), в нём проверяется установлен ли флаг из п.1. Если флаг === true, делаем что нас интересует.
3. На документ вешается слушатель события mouseup, в нём флаг устанавливается в false.
Codepen работает не как надо. Там всегда срабатывает первый if и точно также на каждое движение.
Следует использовать не .which, а .buttons.
Следует использовать не mousemove, а mouseenter.