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 相关文章推荐
location对象的属性和方法应用(解析URL)
Apr 12 Javascript
js数组方法扩展实现数组统计函数
Apr 09 Javascript
Javascript检查图片大小不要让大图片撑破页面
Nov 04 Javascript
纯javascript判断查询日期是否为有效日期
Aug 24 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
Apr 28 Javascript
Javascript点击按钮随机改变数字与其颜色
Sep 01 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
百度搜索框智能提示案例jsonp
Nov 28 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
Nov 18 Javascript
Vue仿支付宝支付功能
May 25 Javascript
Vuex中的State使用介绍
Jan 19 Javascript
js 判断当前时间是否处于某个一个时间段内
Sep 19 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
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
js下将字符串当函数执行的方法
2011/07/13 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
大四学年自我鉴定
2013/11/13 职场文书
中文系学生自荐信范文
2013/11/13 职场文书
高校十八大报告感想
2014/01/27 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android