首先,我不是 HTML5 的专家。几天前我开始用 HTML5 做一些事情。
其次,对不起我的英语,我不是很擅长,可能会犯一些错误。
这是我的问题...
我可以用两次鼠标点击画一条线,这条线从第一个点击点开始,到第二个点击点结束。
但我想创建一条从第一个点击点开始的线,根据鼠标的位置改变它的方向和尺寸,然后在第二个点击点结束。(就像 Android 中的图形密码系统。)
这可能吗?
我发现一些代码只能通过两次鼠标单击来绘制一条线,我对其进行了一些更改并自己添加了一些代码。这是我的最终代码:
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
#myCanvas {
border: 1px solid #9C9898;
}
</style>
<script src="jquery.js"></script>
<script type="text/javascript">
$(function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var point1 = new Array();
point1['x'] = false;
point1['y'] = false;
var point2 = new Array();
point2['x'] = false;
point2['y'] = false;
$(document).click(function(event){
if ( false === point1['x'] || false === point1['y']) {
var posX1 = event.pageX;
var posY1 = event.pageY;
point1['x'] = posX1;
point1['y'] = posY1;
}
else if ( false === point2['x'] || false === point2['y'] ) {
var posX2 = event.pageX;
var posY2 = event.pageY;
point2['x'] = posX2;
point2['y'] = posY2;
console.log("second");
context.moveTo(point1['x'], point1['y']);
context.lineTo(point2['x'], point2['y']);
context.stroke();
point1['x'] = point2['x'];
point1['y'] = point2['y'];
point2['x'] = false;
point2['y'] = false;
}
});
});
</script>
</head>
<body>
<canvas id="myCanvas" width="500" height="500"></canvas>
</body>
</html>