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 相关文章推荐
javascript获取网页中指定节点的父节点、子节点的方法小结
Apr 24 Javascript
一款由jquery实现的整屏切换特效
Sep 15 Javascript
js实现动态加载脚本的方法实例汇总
Nov 02 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
Bootstrap每天必学之折叠(Collapse)插件
Apr 25 Javascript
浅谈jquery点击label触发2次的问题
Jun 12 Javascript
10分钟掌握XML、JSON及其解析
Dec 06 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
vue 文件目录结构详解
Nov 24 Javascript
原生js+cookie实现购物车功能的方法分析
Dec 21 Javascript
详解a标签添加onclick事件的几种方式
Mar 29 Javascript
js getBoundingClientRect使用方法详解
Jul 17 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
4.与数据库的连接
2006/10/09 PHP
php 动态添加记录
2009/03/10 PHP
php自定义hash函数实例
2015/05/05 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
JMenuTab简单使用说明
2008/03/13 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
团支书竞选演讲稿
2014/04/28 职场文书
酒店员工培训方案
2014/06/02 职场文书
酒后驾车标语
2014/06/30 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
Golang 遍历二叉树
2022/04/19 Golang