Ошибка события мыши холста при щелчке мышью

0

Попытка решить проблему, когда элемент мыши холста мыши с mousedown; затем мышь отбрасывается (mouseup) с элемента canvas, когда мышь перемещается обратно в элемент холста, он думает, что мышь все еще опустилась.

Исправление в этом примере заключается в том, что мышь вверх и мышь вниз происходит из документа, а не из холста, но тогда слайдер html5 каким-то образом воздействует на элементы холста на ввод мыши (позиционирование).

Глянь сюда; http://coy.cat/test/a10.htm

  • 0
    Используйте mousedown на холсте, но mouseup на документе.
Теги:
canvas
mouseevent

1 ответ

1
Лучший ответ

Используйте холст для регулярных событий, но прислушайтесь к window.onmouseup вместо этого для мыши (в некоторых случаях вы также захотите это сделать для mousemove).

Когда вы находитесь за пределами элемента canvas, мышь не будет вызывать события мыши в элементе canvas, а элемент ниже и в окне (если событие не предотвращается от пузырьков).

Простой пример:

var isDown = false;  // mouse state

canvas.addEventListener('mousedown', function(e) {
    isDown = true;
    ...
}, false);

window.addEventListener('mouseup', function(e) {
    if (!isDown) return;
    if (e.preventDefault) e.preventDefault();
    isDown = false;
}, false);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню