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 相关文章推荐
innerText和innerHTML 一些问题分析
May 18 Javascript
jQuery select控制插件
Aug 17 Javascript
struts2 jquery 打造无限层次的树
Oct 23 Javascript
jQuery里filter()函数与find()函数用法分析
Jun 24 Javascript
深入探究AngularJS框架中Scope对象的超级教程
Jan 04 Javascript
javascript表单事件处理方法详解
May 15 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
vue-router+nginx 非根路径配置方法
Jun 30 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
layui实现三级导航菜单
Jul 26 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
PHP与SQL注入攻击[一]
2007/04/17 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
python3处理含有中文的url方法
2018/05/10 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
python with (as)语句实例详解
2020/02/04 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
数据管理员的自我评价分享
2013/11/15 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
酒店节能减排方案
2014/05/26 职场文书
建筑工地文明标语
2014/10/09 职场文书
导游带团欢迎词
2015/09/30 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python