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 函数速查表
Feb 07 Javascript
复制小说文本时出现的随机乱码的去除方法
Sep 07 Javascript
jQuery中live方法的重复绑定说明
Oct 21 Javascript
使用js检测浏览器的实现代码
May 14 Javascript
JS操作Cookies的小例子
Oct 15 Javascript
jquery实现当滑动到一定位置时固定效果
Jun 17 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
Jun 13 Javascript
AngularJS 依赖注入详解及示例代码
Aug 17 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
Angular脚手架开发的实现步骤
Apr 09 Javascript
leaflet加载geojson叠加显示功能代码
Feb 21 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 禁止页面缓存输出
2009/01/07 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
图片之间的切换
2006/06/26 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
初步探究Python程序的执行原理
2015/04/11 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
PHP如何去执行一个SQL语句
2016/03/05 面试题
ktv总经理岗位职责
2014/02/17 职场文书
小学运动会演讲稿
2014/08/25 职场文书
表扬信范文
2015/05/04 职场文书
歌舞青春观后感
2015/06/10 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
高一作文之暖冬
2019/11/09 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android