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中的对象化编程
Jan 16 Javascript
javascript qq右下角滑出窗口 sheyMsg
Mar 21 Javascript
javascript面向对象编程代码
Dec 19 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
Jul 17 Javascript
angularjs表格分页功能详解
Jan 21 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
Mar 24 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
Aug 03 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
HTML的select控件美化
Mar 27 Javascript
Vue组件全局注册实现警告框的实例详解
Jun 11 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
JavaScript异步操作中串行和并行
Nov 20 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
python实现分页效果
2017/10/25 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
Python request post上传文件常见要点
2020/11/20 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
教师实习自我鉴定
2013/12/13 职场文书
2014年市场部工作总结
2014/11/25 职场文书
出纳岗位职责
2015/01/31 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS