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 相关文章推荐
23个Javascript弹出窗口特效整理
Feb 25 Javascript
javascript中关于执行环境的杂谈
Aug 14 Javascript
js实现收缩菜单效果实例代码
Oct 30 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
jquery实现浮动的侧栏实例
Jun 25 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
Jun 21 Javascript
jQuery基于正则表达式的表单验证功能示例
Jan 21 Javascript
Node.js 使用jade模板引擎的示例
May 11 Javascript
Vue.js实现数据响应的方法
Aug 13 Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 Javascript
mpvue小程序循环动画开启暂停的实现方法
May 15 Javascript
javascript实现搜索筛选功能实例代码
Nov 12 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
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
python解析yaml文件过程详解
2019/08/30 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
租房安全协议书
2014/08/20 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
保研导师推荐信
2015/03/25 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
2015年教师节感言
2015/08/03 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
python神经网络 使用Keras构建RNN训练
2022/05/04 Python
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python