2014-10-02 110 views
0
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]; 
}; 

这是画线用两个鼠标clicks.But我不知道在按钮啥子叫(我有各种工具工具栏)HTML5画布符合两个鼠标绘制点击

<input type="image" src="images/line.ico" width="25" height="25"> 
代码

请帮忙 提前致谢!

回答

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>