博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5 canvas实现一个简易画板
阅读量:6372 次
发布时间:2019-06-23

本文共 1217 字,大约阅读时间需要 4 分钟。

hot3.png

初学javascript,希望和大家交流。

首先创建一个canvas

<canvas id="myCanvas" class="myCanvas" οnmοusemοve="draw();" οnmοusedοwn="pMoveTo();" οnmοuseup="cancel();"></canvas>

<script src="js/jquery-1.5.2.min.js"></script>

<script>

var c=document.getElementById("myCanvas");

var cxt=c.getContext("2d");

var cx = $('#myCanvas').offset().left;

var cy = $('#myCanvas').offset().top;

        //初始化画板

var init = function(){

for(var x = 0.5 ; x < 500 ;x += 10){

cxt.moveTo(x,0);

cxt.lineTo(x,500);

}

for(var y = 0.5 ; y < 500 ;y += 10){

cxt.moveTo(0,y);

cxt.lineTo(500,y);

}

cxt.strokeStyle="#eee";

cxt.stroke();

}

init();

//上下文环境,用于记录鼠标的轨迹

var drawContext = function(x,y){

var end_x = 0;

var end_y = 0;

return function(x,y){

cxt.lineTo(x,y);

cxt.stroke();

end_x = x;

end_y = y;

cxt.moveTo(end_x,end_y);

}

}

var dc;

//每一次落笔(鼠标单击)都创建一个上下文环境

function pMoveTo(e){

e=e||window.event;

var _x = e.clientX - cx;

var _y = e.clientY - cy;

cxt.moveTo(_x,_y);

cxt.beginPath();

cxt.strokeStyle="red";

dc = drawContext(_x,_y);

}

//画画

function draw(e){

e=e||window.event;

var _x = e.clientX - cx;

var _y = e.clientY - cy;

if(dc){

dc(_x,_y);

}

}

//鼠标放开,则释放这次落笔

function cancel(){

if(dc){

dc = null;

}

else{

return;

}

}

转载于:https://my.oschina.net/zhigangsuper/blog/36353

你可能感兴趣的文章
Stopping and/or Restarting an embedded Jetty in...
查看>>
Oracle存储过程中的数据集输入参数
查看>>
vsftp 配置
查看>>
VCSA中配置时间和时区,实测至6.5适用
查看>>
高并发IM系统架构优化实践
查看>>
产品经理教你玩转阿里云负载均衡SLB系列(一):快速入门--什么是负载均衡
查看>>
有关linux--进程组、会话、守护进程详解
查看>>
我的友情链接
查看>>
monkeyrunner运行Python脚本来检查apk渠道和验证是否可以调用微信
查看>>
github获得SSH Key解决Permission denied (publickey)问题
查看>>
用java代码编写Oracle存储过程
查看>>
APACHE转发
查看>>
android-market-api
查看>>
解決 yum update錯誤:[Errno -1] Metadata file does not match checksum
查看>>
我的友情链接
查看>>
『Data Science』R语言学习笔记,获取数据
查看>>
rails中n秒页面自动跳转
查看>>
我的友情链接
查看>>
忘记root用户密码怎么办?
查看>>
esxi定时任务
查看>>