Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   отследить состояние кнопки мышки (https://javascript.ru/forum/events/68729-otsledit-sostoyanie-knopki-myshki.html)

Dimasick 05.05.2017 13:58

отследить состояние кнопки мышки
 
Есть полотно (canvas), для которого активирую обработчик в виде
canvas.addEventListener('click', listener, false);
само полотно разбито на области и я просто проверяю, если над этой областью был клик, то область перекрашиваю. Все работает :dance: НО есть вопрос: как делать то же самое, не кликая, а протаскивая мышку над теми областями, которые надо перекрасить? В обработчиках событий нашел только клик, драг и т.п., но не увидел ничего похожего на то, что мышка проходит над областью с зажатой кнопкой. :help:

Dilettante_Pro 05.05.2017 15:03

Dimasick,
По событию mousedown назначать обработчики на mousemove или mouseover (как удобнее), по mouseup убирать обработчики

Dimasick 05.05.2017 22:05

Цитата:

Сообщение от Dilettante_Pro (Сообщение 451712)
Dimasick,
По событию mousedown назначать обработчики на mousemove или mouseover (как удобнее), по mouseup убирать обработчики

Не понял :-E Можете это как-то понятнее написать :write:?

Dilettante_Pro 06.05.2017 09:09

Поподробнее
function listenerMouseDown() {
   canvas.addEventListener('mousemove', listener, false);
};
function listenerMouseUp() {
   canvas.removeEventListener('mousemove', listener, false);
};
function listener() {
  //проверяю, если над этой областью было движение, то область перекрашиваю.
}
canvas.addEventListener('mousedown', listenerMouseDown, false);
canvas.addEventListener('mouseup', listenerMouseUp, false);

Имейте в виду, что событий mousemove будет очень много


Часовой пояс GMT +3, время: 11:47.