1
Я сделал этот пример, чтобы показать, что моя проблема: http://jsfiddle.net/GSRgf/HTML5 - Canvas, нарисуйте прямоугольник с помощью DIV
HTML
<canvas id="canvas" width="500" height="500"></canvas>
<div id="div"></div>
JS
$(function() {
var ctx=$('#canvas')[0].getContext('2d');
rect = {};
drag = false;
$(document).on('mousedown','#canvas',function(e){
rect.startX = e.pageX - $(this).offset().left;
rect.startY = e.pageY - $(this).offset().top;
rect.w=0;
rect.h=0;
drag = true;
});
$(document).on('mouseup','#canvas',function(){
drag = false;
});
$(document).on('mousemove','#canvas',function(e){
if (drag) {
rect.w = (e.pageX - $(this).offset().left)- rect.startX;
rect.h = (e.pageY - $(this).offset().top)- rect.startY;
ctx.clearRect(0, 0, 500, 500);
ctx.fillStyle = 'rgba(0,0,0,0.5)';
ctx.fillRect(rect.startX, rect.startY, rect.w, rect.h);
}
});
});
Как это возможно продолжайте рисовать прямоугольник, когда мышь находится над div?
Спасибо!
Я решил пойти по этому пути, хотя ... Есть ли у вас какие-либо идеи, почему она не работает в IE вообще? (пытается с IE10). – ticktack
@ticktack - В IE9 jQuery 1.10.1 не работает, по крайней мере, в JSFiddle, переход на jQuery 1.9 исправил проблему (с IE9) для меня http://jsfiddle.net/GSRgf/4/ Я не есть IE10, хотя –
Правильно, это исправлено и в IE10 тоже. Благодаря! – ticktack