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 相关文章推荐
基于jquery的超简单上下翻
Apr 20 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
js获取元素外链样式的方法
Jan 27 Javascript
jquery遍历json对象集合详解
May 18 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
May 17 Javascript
JavaScript实现瀑布流图片效果
Jun 30 Javascript
Vue2.0子同级组件之间数据交互方法
Feb 28 Javascript
vue自定义filters过滤器
Apr 26 Javascript
微信小程序module.exports模块化操作实例浅析
Dec 20 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
Sep 10 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 Javascript
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
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
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
Python字符串详细介绍
2015/05/09 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
小学教师的自我评价范例
2013/10/31 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
老公给老婆的保证书
2014/04/28 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
超市收银员岗位职责
2015/04/07 职场文书
电影雨中的树观后感
2015/06/15 职场文书
五一晚会主持词
2015/07/01 职场文书
2015年重阳节主持词
2015/07/04 职场文书
优秀新员工事迹材料
2019/05/13 职场文书