快捷导航
蚂蚁部落 网站首页 实例代码 canvas实例 查看内容

canvas实现的写字板功能代码实例

2017-4-18 14:27| 发布者: antzone| 查看: 395| 评论: 0|来自: 蚂蚁部落

分享一段代码实例,它利用canvas实现了写字板功能。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
</head>
<body>
<canvas id="container" style="background:#666"></canvas>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
var container = document.getElementById('container');
var context = container.getContext('2d');
 
var paint = false; //判断是否需要绘画
var mouseX = 0,
  mouseY = 0,
  nowX = 0,
  nowY = 0; //存储坐标记录
 
var position = {
  reset: function(actionX, actionY, goalX, goalY) { //坐标替换
    paint = true;
    var order = "" + actionX + "=" + goalX + "," + actionY + "=" + goalY;
    eval(order);
    console.log(order);
  },
  init: function() { //坐标清零
    console.log("init");
    paint = false;
    mouseX = 0;
    mouseY = 0;
    nowX = 0;
    nowY = 0;
  }
}
 
var canvas = {
  init: function() { //canvas初始化
    context.strokeStyle = "blue";
    context.strokeRect(0, 0, 300, 200)
  },
  draw: function(lastX, lastY, nowX, nowY) { //canvas划线
    context.strokeStyle = "yellow";
    context.lineWidth = 2;
    context.beginPath();
    context.moveTo(lastX, lastY);
    context.lineTo(nowX, nowY);
    context.stroke();
    position.reset('mouseX', 'mouseY', nowX, nowY);
  },
  redraw: function() { //canvas重绘
    position.init();
  },
}
$('#container').mousedown(function(e) {
  position.reset('mouseX', 'mouseY', e.pageX - this.offsetLeft, e.pageY - this.offsetTop);
  console.log(mouseX + ":" + mouseY);
})
$('#container').mousemove(function(e) {
  if (paint) {
    console.log(mouseX + ":" + mouseY);
    position.reset('nowX', 'nowY', e.pageX - this.offsetLeft, e.pageY - this.offsetTop);
    canvas.draw(mouseX, mouseY, nowX, nowY);
  }
})
$("#container").mouseup(function(e) {
  if (paint) {
    position.init();
    // canvas.returnData();
  }
})
$("#container").mouseleave(function(e) {
  if (paint) {
    position.init();
  }
})
</script>
</body>
</html>

鲜花

握手

雷人

路过

鸡蛋

最新评论

关于我们|手机版|小黑屋| 蚂蚁部落 ( 鲁ICP备10022556号-3 )

GMT+8, 2017-6-27 16:46 , Processed in 0.054706 second(s), 21 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

返回顶部