var clicks = 0;
var lastClick = [0, 0];
document.getElementById('imageView').addEventListener('click', drawLine, false);
function getCursorPosition(e) {
var x;
var y;
if (e.pageX != undefined && e.pageY != undefined) {
x = e.pageX;
y = e.pageY;
} else {
x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
return [x, y];
}
function drawLine(e) {
context = this.getContext('2d');
x = getCursorPosition(e)[0] - this.offsetLeft;
y = getCursorPosition(e)[1] - this.offsetTop;
if (clicks != 1) {
clicks++;
} else {
context.beginPath();
context.moveTo(lastClick[0], lastClick[1]);
context.lineTo(x, y, 6);
context.strokeStyle = '#000000';
context.stroke();
clicks = 0;
}
lastClick = [x, y];
};
这是用两次鼠标点击绘制线的代码。但我不知道是否要按下按钮(我有一个带各种工具的工具栏)
<input type="image" src="images/line.ico" width="25" height="25">
请帮忙 提前谢谢!
答案 0 :(得分:0)
我修改了你的代码来纠正它。试试这个.... :)
<html>
<head><title></title>
<script>
var clicks = 0;
var lastClick = [0, 0];
var element;
function startDrawing()
{
element = document.getElementById('imageView');
if(element != null || element != undefined)
{
element.addEventListener('click', drawLine, false);
}
}
function getCursorPosition(e) {
var x;
var y;
if (e.pageX != undefined && e.pageY != undefined) {
x = e.pageX;
y = e.pageY;
} else {
x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
return [x, y];
}
function drawLine(e) {
context = this.getContext('2d');
x = getCursorPosition(e)[0] - this.offsetLeft;
y = getCursorPosition(e)[1] - this.offsetTop;
if (clicks != 1) {
clicks++;
} else {
context.beginPath();
context.moveTo(lastClick[0], lastClick[1]);
context.lineTo(x, y, 6);
context.strokeStyle = '#000000';
context.stroke();
clicks = 0;
}
lastClick = [x, y];
}
</script>
</head>
<body>
<input type="image" src="images/line.ico" width="25" height="25" onclick="startDrawing()">
<!--Your image element will be here -->
</body>
</html>