涂鸦板简单实现 Html5编写属于自己的画画板


Posted in HTML / CSS onJuly 05, 2016

最近了解到html5强大的绘图功能让我惊奇,于是,写了个小玩意---涂鸦板,能实现功能有:画画,改色,调整画笔大小

html5的绘图可以分为点,线,面,圆,图片等,点和线,这可是所有平面效果的基点,有了这两个东西,没有画不出来的东西,只有想不到的算法。

先上代码了:

html
XML/HTML Code复制内容到剪贴板
  1. <body style="cursor:pointer">  
  2.  <canvas id="mycavas" width="1024" height="400" style="border:solid 4px #000000"></canvas><!--画布-->  
  3.         <input type="color" id="color1" name="color1"/><!--设色器-->  
  4.         <output name="a" for="color1" onforminput="innerHTML=color1.value"></output>  
  5.          <input type="range" name="points" id="size" min="5" max="20" /><!--拖动条-->  
  6. </body>     

效果:

涂鸦板简单实现 Html5编写属于自己的画画板

好了,一个简陋的画图界面就搞好啦,下面开始写一些画线的代码 

JavaScript Code复制内容到剪贴板
  1. $.Draw = {};   
  2. $.extend($.Draw, {   
  3.     D2: "",   
  4.     CX:"",   
  5.     Box: "mycavas",//画布id   
  6.     BoxObj:function(){//画布对象   
  7.         this.CX=document.getElementById(this.Box);   
  8.     },   
  9.     D2:function(){//2d绘图对象   
  10.        this.D2 = this.CX.getContext("2d");   
  11.     },   
  12.     Cricle: function (x, y, r, color) {//画圆   
  13.         if (this.D2) {   
  14.             this.D2.beginPath();   
  15.             this.D2.arc(x, y, r, 0, Math.PI * 2, true);   
  16.             this.D2.closePath();   
  17.             if (color) {   
  18.                 this.D2.fillStyle = color;   
  19.             }   
  20.             this.D2.fill();   
  21.         }   
  22.     },   
  23.     init: function () {//初始化   
  24.         this.BoxObj();   
  25.         this.D2();   
  26.     }   
  27.   
  28. })   
  29.   

相信这里的简单代码大家都看得懂,主要就是创建了一个对象,包含创建画布,创建2d对象,画圆方法,和对象初始化方法。

接下里前台html页面来调用这个对象/p>

看代码:

JavaScript Code复制内容到剪贴板
  1. var color = "#000000";//初始化颜色   
  2.         var size = 5;//初始化尺寸   
  3.         document.getElementById('color1').onchange = function () {   
  4.             color = this.value;   
  5.         };   
  6.         document.getElementById('size').onchange = function () {   
  7.             size = this.value;   
  8.         };   
  9.         $.Draw.init();//初始化   
  10.         var tag = false;//控制鼠标当前状态并起到开启油墨开关的作用   
  11.         var current = {};//存储鼠标按下时候的点   
  12.         document.onmousedown = function (option) {//鼠标按下事件   
  13.             current.x = option.x;   
  14.             current.y = option.y;   
  15.             $.Draw.Cricle(option.x, option.y, size, color);   
  16.             tag = true;   
  17.         }   
  18.         document.onmouseup = function () {//鼠标抬起事件   
  19.             tag = false;   
  20.         }   
  21.         document.onmousemove = function (option) {//鼠标移动事件   
  22.             if (tag) {   
  23.                 if (size >= 0) {   
  24.                     $.Draw.Cricle(option.x, option.y, size, color);   
  25.                 }    
  26.             }   
  27.         }   

这段代码主要有如下几个意思

1.捕获颜色空间和拖动条控件的change事件,从而获取对应的颜色和尺寸的数值,存储下来供下面画线用

2.初始化画图对象

3.捕获鼠标的按下,抬起和移动事件,关键在一个开关可以控制油墨

好了,一个简单的涂鸦板就好了,上我的书法:

涂鸦板简单实现 Html5编写属于自己的画画板

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

原文链接:http://www.cnblogs.com/bob1314/p/3830220.html

HTML / CSS 相关文章推荐
细说CSS3中的选择符
Oct 17 HTML / CSS
css3 media 响应式布局的简单实例
Aug 03 HTML / CSS
css3 实现圆形旋转倒计时
Feb 24 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
Feb 14 HTML / CSS
HTML5的结构和语义(5):交互
Oct 17 HTML / CSS
HTML5 Canvas概述
Aug 26 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
May 28 HTML / CSS
仿酷狗html5手机音乐播放器主要部分代码
May 15 HTML / CSS
html5实现多文件的上传示例代码
Feb 13 HTML / CSS
html5中JavaScript removeChild 删除所有节点
May 16 HTML / CSS
HTML5之语义标签介绍
Jul 07 HTML / CSS
关于webview适配H5上传照片或者视频文件的方法
Nov 04 HTML / CSS
深入剖析webstorage[html5的本地数据处理]
Jul 11 #HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
Jul 13 #HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
Jul 19 #HTML / CSS
HTML5 Web 存储详解
Sep 16 #HTML / CSS
HTML5移动开发图片压缩上传功能
Nov 09 #HTML / CSS
纯HTML5+CSS3制作生日蛋糕代码
Nov 16 #HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
Nov 17 #HTML / CSS
You might like
实现php加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
pyv8学习python和javascript变量进行交互
2013/12/04 Python
在Django的URLconf中使用命名组的方法
2015/07/18 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
Python实现时间序列可视化的方法
2019/08/06 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
Python绘制动态水球图过程详解
2020/06/03 Python
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
护理自荐信
2013/10/22 职场文书
大学生标准推荐信范文
2013/11/25 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
运动会入场词100字
2014/02/06 职场文书
2014年党支部承诺书
2014/05/30 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript