Попытка решить проблему, когда элемент мыши холста мыши с mousedown; затем мышь отбрасывается (mouseup) с элемента canvas, когда мышь перемещается обратно в элемент холста, он думает, что мышь все еще опустилась.
Исправление в этом примере заключается в том, что мышь вверх и мышь вниз происходит из документа, а не из холста, но тогда слайдер html5 каким-то образом воздействует на элементы холста на ввод мыши (позиционирование).
Глянь сюда; http://coy.cat/test/a10.htm
Используйте холст для регулярных событий, но прислушайтесь к 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);