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中汉字显示乱码问题(已解决)
Dec 27 Javascript
JS 添加网页桌面快捷方式的代码详细整理
Dec 27 Javascript
jQuery+json实现的简易Ajax调用实例
Dec 14 Javascript
原生javascript实现图片放大镜效果
Jan 18 Javascript
微信小程序自定义导航隐藏和显示功能
Jun 13 Javascript
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
cordova入门基础教程及使用中遇到的一些问题总结
Nov 14 Javascript
webpack打包react项目的实现方法
Jun 21 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
Vue路由的模块自动化与统一加载实现
Jun 05 Javascript
基于react项目打包css引用路径错误解决方案
Oct 28 Javascript
基于js实现的图片拖拽排序源码实例
Nov 04 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
php开发环境配置记录
2011/01/14 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
pycharm远程调试openstack代码
2017/11/21 Python
Numpy之文件存取的示例代码
2018/08/03 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
一个C/C++编程面试题
2013/11/10 面试题
运动会广播稿50字
2014/01/26 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
擅自离岗检讨书
2014/09/12 职场文书
成本会计岗位职责
2015/02/03 职场文书
死者家属慰问信
2015/03/24 职场文书
车间安全生产管理制度
2015/08/06 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL