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改变HTML元素的样式改变CSS及元素属性
Nov 12 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
May 10 Javascript
总结几道关于Node.js的面试问题
Jan 11 Javascript
js从输入框读取内容,比较两个数字的大小方法
Mar 13 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
Sep 27 Javascript
JS数组求和的常用方法总结【5种方法】
Jan 14 Javascript
vue过滤器用法实例分析
Mar 15 Javascript
VUE 自定义组件模板的方法详解
Aug 30 Javascript
vue中uni-app 实现小程序登录注册功能
Oct 12 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
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 set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
yii数据库的查询方法
2015/12/28 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
vue中轮训器的使用
2019/01/27 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python套接字流重定向实例汇总
2016/03/03 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python中自带的三个装饰器的实现
2019/11/08 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
django rest framework 过滤时间操作
2020/07/12 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
人资专员岗位职责
2014/04/04 职场文书
领导班子整改方案
2014/10/25 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书