Javascript HTML5 Canvas实现的一个画板


Posted in Javascript onApril 12, 2020

本文实例为大家分享了HTML5 Canvas实现的一个画板代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>DEMO6:自定义画板</title>
</head>
<body>
<canvas id="canvas" width="600" height="300">
 浏览器不支持canvas <!-- 如果不支持会显示这段文字 -->
</canvas>
<br/>
<button style="width:80px;background-color:yellow;" onclick='linecolor="yellow";'>YELLOW</button>
<button style="width:80px ;background-color:red;" onclick='linecolor="red";'>RED</button>
<button style="width:80px ;background-color:blue;" onclick='linecolor="blue";'>BLUE</button>
<button style="width:80px ;background-color:green;" onclick='linecolor="green";'>GREEN</button>
<button style="width:80px ;background-color:white;" onclick='linecolor="white";'>WHITE</button>
<button style="width:80px ;background-color:black;" onclick='linecolor="black";'>BLACK</button>
<br/>
 
<button style="width: 80px;background-color: white;" onclick="linw=4;">4PX</button>
<button style="width: 80px;background-color: white;" onclick="linw=8;">8PX</button>
<button style="width: 80px;background-color: white;" onclick="linw=16;">16PX</button>
<br/>
 
<button style="width: 80px;background-color: white;" onclick="copyimage();">EXPORT</button>
 
<br/>
<img src="" id="image_png" width="600px" height="300px">
<br/>
 
<script type="text/javascript">
 var canvas = document.getElementById('canvas'); //获取标签
 var ctx = canvas.getContext("2d"); 
 
 var fillStyle = "black";
 ctx.fillRect(0,0,600,300);
 var onoff = false; //按下标记
 var oldx = -10;
 var oldy = -10;
 //设置颜色
 var linecolor = "white";
 var linw = 4;
 canvas.addEventListener("mousemove",draw,true); //鼠标移动事件
 canvas.addEventListener("mousedown",down,false); //鼠标按下事件
 canvas.addEventListener("mouseup",up,false); //鼠标弹起事件
 function down(event){
  onoff = true;
  oldx = event.pageX - 10;
  oldy = event.pageY - 10;
 }
 function up(){
  onoff = false;
 }
 function draw(event){
  if (onoff==true) {
   var newx = event.pageX - 10;
   var newy = event.pageY - 10
   ctx.beginPath();
   ctx.moveTo(oldx,oldy);
   ctx.lineTo(newx,newy);
   ctx.strokeStyle = linecolor;
   ctx.lineWidth = linw;
   ctx.lineCap = "round";
   ctx.stroke();
 
   oldx = newx;
   oldy = newy;
  }
 }
 function copyimage(event)
 {
  var img_png_src = canvas.toDataURL("image/png"); //将画板保存为图片格式的函数
  document.getElementById("image_png").src = img_png_src;
 }
  
 </script> 
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
根据表格中的某一列进行排序的javascript代码
Nov 29 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
jquery通过ajax加载一段文本内容的方法
Jan 15 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
Apr 05 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
May 30 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
Jun 08 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
Dec 27 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
vue中移动端调取本地的复制的文本方式
Jul 18 Javascript
Nest.js散列与加密实例详解
Feb 24 Javascript
bootstrap3 兼容IE8浏览器!
May 02 #Javascript
javascript实现列表切换效果
May 02 #Javascript
基于javascript编写简单日历
May 02 #Javascript
Bootstrap媒体对象的实现
May 01 #Javascript
Bootstrap进度条组件知识详解
May 01 #Javascript
BootStrap glyphicons 字体图标实现方法
May 01 #Javascript
JS实现左右无缝轮播图代码
May 01 #Javascript
You might like
php实现在服务器上创建目录的方法
2015/03/16 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
PHP7常量数组用法分析
2016/09/26 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
会议开场欢迎词
2014/01/15 职场文书
初一家长会邀请函
2014/01/31 职场文书
鲜花方阵解说词
2014/02/13 职场文书
销售总经理岗位职责
2014/03/15 职场文书
关于运动会的口号
2014/06/07 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
MySQL创建表操作命令分享
2022/03/25 MySQL