【发布时间】:2015-04-28 05:26:36
【问题描述】:
对不起,如果标题相当混乱,但我正在 AngularJS 中将一个矩形绘制到画布上,我希望用户能够点击一个点,并且当 mousedown 被触发时,可以拖动矩形到它的最终位置,直到 mouseup 被触发。我的代码大部分都有效,除了无法清除最后一个位置的矩形,因此最终结果是绘制了很多矩形而不是一个最终产品。这是有关该问题的一些代码,但是,我没有包含 mouseup 和 mousedown b/c 的事件侦听器,它们相当不言自明,根据需要工作,并且与问题无关。
element.bind('mousemove', function(event){
if(drawing){
// get current mouse position
if(event.offsetX!==undefined){
currentX = event.offsetX;
currentY = event.offsetY;
} else { //firefox
currentX = event.layerX - event.currentTarget.offsetLeft;
currentY = event.layerY - event.currentTarget.offsetTop;
}
rect.style.width = (currentX - startX) + 'px';
rect.style.height = (currentY - startY) + 'px';
//draw the rectangle using context
draw(startX, startY, currentX - startX, currentY - startY);
}
});
function draw(aX, aY, bX, bY){
//this is where I'm drawing too many rectangles!!
ctx.beginPath();
ctx.lineWidth="2";
ctx.strokeStyle="red";
ctx.strokeRect(aX,aY,bX,bY);
}
注意:This post gives a good overview of the problem, except that it is not javascript
【问题讨论】:
标签: javascript html angularjs canvas angularjs-directive