【发布时间】:2018-06-11 20:54:06
【问题描述】:
我正在创建一个基于 Web 的注释应用程序,用于通过 HTML 画布元素和 Javascript 对图像进行注释。我希望用户向下鼠标指示矩形的开始,拖动到所需的结束坐标并松手以指示矩形的另一端。
目前,我可以使用 context.rects() 函数获取起始坐标和结束坐标在图像上创建一个矩形,但是由于我不确定如何调整特定的大小画布上的矩形,这让我只有在用户释放鼠标单击后才绘制矩形。
如何在拖动时调整在 onmousedown 上创建的特定矩形的大小?
以下是执行该功能的代码sn-p:
var isMouseDown = false;
var startX;
var startY;
canvas.onmousedown = function(e) {
if(annMode){
isMouseDown = true;
var offset = $(this).offset();
startX = parseInt(e.pageX - offset.left);
startY = parseInt(e.pageY - offset.top);
}
};
canvas.onmousemove = function(e) {
if(isMouseDown) {
var offset = $(this).offset();
var intermediateX = parseInt(e.pageX - offset.left);
var intermediateY = parseInt(e.pageY - offset.top);
console.log(intermediateX);
}
};
canvas.onmouseup = function(e) {
if(annMode&&isMouseDown){
isMouseDown = true;
var offset = $(this).offset();
var endX = parseInt(e.pageX - offset.left);
var endY = parseInt(e.pageY - offset.top);
var width = endX - startX;
var height = endY - startY;
context.strokeStyle = "#FF0000";
context.rect(startX, startY, width, height);
context.stroke();
}
isMouseDown = false
};
【问题讨论】:
标签: javascript html html5-canvas mouseevent