js+canvas实现画板功能


Posted in Javascript onSeptember 13, 2020

本文实例为大家分享了js+canvas实现画板功能的具体代码,供大家参考,具体内容如下

1.实现了画图,改变画笔粗细,改变画笔颜色,清屏功能

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8" />
 <title>画板</title>
 <link rel="shortcut icon" type="image/x-icon" href="img/an.ico" />
 <link rel="stylesheet" type="text/css" href="css/drow.css" />
 </head>
 <body>
 <canvas id="mycanvas" width="1100px" height="660px"></canvas>
 <div class="tool">
  画笔颜色:<input type="color" name="color1" id="color1"/><br />
  画笔粗细:<input type="range" name="range1" id="range1"min="1" max="20"/><br />
  <button class="btn">清屏</button>
 </div>
 </body>
 <script src="js/drow.js" type="text/javascript" charset="utf-8"></script>
</html>
*{
 margin: 0;
 padding: 0;
 text-align: left;
 -moz-user-select: none;
 -ms-user-select: none;
 -webkit-user-select: none;
}
#mycanvas{
 border: 2px solid deepskyblue;
}
.tool{
 width: 260px;
 height: 100%;
 position: fixed;
 right: 0;
 top: 0;
 background-color: #CCCCCC;
}
//获取对象
var mycanvas = document.getElementById("mycanvas");
var color1 = document.getElementById("color1");
var range1 = document.getElementById("range1");
var btn = document.getElementsByClassName("btn")[0];
var contxt = mycanvas.getContext("2d");
btn.onclick=function () {
 contxt.clearRect(0,0,1200,660);
}
var flag = false;
var x = 0,
 y = 0;
// 鼠标点下事件
mycanvas.onmousedown = function(event) {
 flag = true;
 // 获取鼠标点下的开始位置
 var x = event.clientX - mycanvas.offsetLeft;
 var y = event.clientY - mycanvas.offsetTop;
 contxt.beginPath(); // 开始新建路径
 contxt.strokeStyle = color1.value; // 获得颜色赋值给画笔
 contxt.lineCap="round";
 contxt.lineWidth = range1.value; // 获得画笔宽度赋值给画笔
 contxt.moveTo(x, y); // 开始位置
 }
// 鼠标移动事件
mycanvas.onmousemove = function(event) {
 // 获取鼠标在移动的位置
 var mX = event.clientX - mycanvas.offsetLeft;
 var mY = event.clientY - mycanvas.offsetTop;
 if (flag) {
  contxt.lineTo(mX, mY); // 移动途中和结束位置
  contxt.stroke(); // 结束渲染画布
 }
 }
// 鼠标松开事件
mycanvas.onmouseup = function() {
 flag = false;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js特效,页面下雪的小例子
Jun 17 Javascript
Jquery 模板数据绑定插件的使用方法详解
Jul 08 Javascript
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
构造函数+原型模式构造js自定义对象(最通用)
May 12 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
好好了解一下Cookie(强烈推荐)
Jun 14 Javascript
Java  Spring 事务回滚详解
Oct 17 Javascript
微信小程序云开发如何使用npm安装依赖
May 18 Javascript
微信小程序如何使用globalData的方法
Jun 06 Javascript
Vue实现跑马灯效果
May 25 Javascript
详解Vue.js 响应接口
Jul 04 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 28 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 #jQuery
jQuery实现简单全选框
Sep 13 #jQuery
jQuery+ajax实现用户登录验证
Sep 13 #jQuery
js+audio实现音乐播放器
Sep 13 #Javascript
js+canvas实现刮刮奖功能
Sep 13 #Javascript
js+css3实现简单时钟特效
Sep 13 #Javascript
jquery实现简易验证插件封装
Sep 13 #jQuery
You might like
大师制作的中短波矿石收音机
2020/04/02 无线电
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
layui实现数据分页功能
2019/07/27 Javascript
Python的垃圾回收机制深入分析
2014/07/16 Python
Python文件和目录操作详解
2015/02/08 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
J2EE模式面试题
2016/10/11 面试题
教学个人的自我评价分享
2014/02/16 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
环保建议书300字
2014/05/14 职场文书
党员干部一句话承诺
2014/05/30 职场文书
初中生毕业评语
2014/12/29 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
消防安全主题班会
2015/08/12 职场文书
python实现简易自习室座位预约系统
2021/06/30 Python
如何Python使用re模块实现okenizer
2022/04/30 Python
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL