码迷,mamicode.com
首页 > 其他好文 > 详细

米字格画布

时间:2018-03-12 21:21:45      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:gre   close   offset   text   http   width   SM   canvas   this   

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>手写板</title>
<link href="css/demo.css" rel="stylesheet" />
<script src="js/jquery-1.10.2.min.js"></script>
<script>
var canvas, context;
var isMouseDown = false;
var startPoint = { x: 0, y: 0 };
var lineColor = "black";
function getPoint(x, y) {
var canvasOffset = canvas.getBoundingClientRect();//获取到canvas相对于浏览器的方位对象
return { x: x - canvasOffset.left, y: y - canvasOffset.top };
}
function clearCanvas() {
context.clearRect(0, 0, 400, 400);
draw();
}
window.onload = function () {
$(".dcolor").click(function () {
lineColor = $(this).attr("data-color");
});
draw();
canvas.onmousedown = function (e) {
isMouseDown = true;
startPoint = getPoint(e.clientX, e.clientY);//获取起点相对于canvas的坐标
}
canvas.onmouseup = function () {
isMouseDown = false;
}
canvas.onmouseout = function () {
isMouseDown = false;
}
canvas.onmousemove = function (e) {
if (isMouseDown) {
var endPoint = getPoint(e.clientX, e.clientY);
context.beginPath();
context.strokeStyle = lineColor;
context.lineWidth = 3;
context.moveTo(startPoint.x, startPoint.y);
context.lineTo(endPoint.x, endPoint.y);
context.stroke();
startPoint = endPoint;
}
}
}
function draw() {//画米字格
canvas = document.getElementById("canvas");//获取到canvas对象,演员
context = canvas.getContext("2d");//canvas画图的环境,相当于演员表演的舞台
canvas.width = 400;//设置canvsa宽度
canvas.height = 400;//设置canvas高度
context.beginPath();//开始一个路径
context.strokeStyle = "red";//设置线的颜色
context.lineWidth = 4;//设置线的粗细
context.moveTo(0, 0);
context.lineTo(400, 0);
context.lineTo(400, 400);
context.lineTo(0, 400);
context.closePath();//形成一个闭合的图形
context.stroke();//开始绘制

context.beginPath();
context.lineWidth = 1;
context.moveTo(0, 0);
context.lineTo(400, 400);
context.moveTo(400, 0);
context.lineTo(0, 400);
context.moveTo(200, 0);
context.lineTo(200, 400);
context.moveTo(0, 200);
context.lineTo(400, 200);
context.stroke();//开始绘制

}
</script>
</head>
<body>
<div id="main">
<canvas id="canvas"></canvas>
<div id="colors">
<div class="dcolor" data-color="black" id="cbalck"></div>
<div class="dcolor" data-color="red" id="cred"></div>
<div class="dcolor" data-color="green" id="cgreen"></div>
<div class="dcolor" data-color="blue" id="cblue"></div>
<div class="dcolor" data-color="pink" id="cpink"></div>
<div class="dclear"><a href="javascript:;" onclick="clearCanvas()">清除</a></div>
</div>
</div>
</body>
</html>

米字格画布

标签:gre   close   offset   text   http   width   SM   canvas   this   

原文地址:https://www.cnblogs.com/sunshinezjb/p/8550661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!