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

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

先上代码了:

html

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> 

效果:

好了,一个简陋的画图界面就搞好啦,

下面开始写一些画线的代码

 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 })

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

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

看代码:

 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.捕获鼠标的按下,抬起和移动事件,关键在一个开关可以控制油墨

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

是不是有点闲的蛋疼呢,呵呵!书法不如当年

转载于:https://www.cnblogs.com/bob1314/p/3830220.html

HTML5实现涂鸦板相关推荐

  1. HTML5简易涂鸦板制作

    运行效果 代码中主要要学会阅读英文单词,务必认真学习English 代码清单1 <!DOCTYPE html> <html><head><meta chars ...

  2. 电脑PHP动画制作画板,涂鸦板简单实现 Html5编写属于自己的画画板

    这篇文章主要教大家如何使用Html5编写属于自己的画画板,进行绘画.调整颜色等操作,感兴趣的小伙伴们可以参考一下 最近了解到html5强大的绘图功能让我惊奇,于是,写了个小玩意---涂鸦板,能实现功能 ...

  3. java 画笔粗细,javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板

    js+html5 canvas实现的涂鸦画板特效,可调画笔颜色|粗细|橡皮,可以保存涂鸦效果为图片编码,非常适合学习html5的canvas,必须支持html5的浏览器才能看到效果. javascri ...

  4. html画布画笔粗细,基于javascript html5 canvas实现可调画笔颜色/粗细/橡皮的涂鸦板...

    js+html5 canvas实现的涂鸦画板特效,可调画笔颜色|粗细|橡皮,可以保存涂鸦效果为图片编码,非常适合学习html5的canvas,必须支持html5的浏览器才能看到效果. javascri ...

  5. javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板

    javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板 <!doctype html> <head> <meta http-equiv= ...

  6. html5 涂鸦板

    效果图: <html> <head> <script src="colorFactory.js"></script><titl ...

  7. HTML5实例教程——简易涂鸦板-何韬-专题视频课程

    HTML5实例教程--简易涂鸦板-6858人已学习 课程介绍         用CANVES制作一个涂鸦板,让初学者初步了解HTML5的语言与功能. 课程收益     快速学会涂鸦板的做法,同时对HT ...

  8. Canvas网页涂鸦板再次增强版

    目录 第一版Canvas涂鸦板 第二版Canvas涂鸦板 第三版Canvas涂鸦板 体验涂鸦板 第一版Canvas涂鸦板 实现功能:在涂鸦板上鼠标按下去拖动的涂鸦效果 实现思路:监听鼠标按下.移动.松 ...

  9. 【Qt】2D绘图之涂鸦板

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 程序设计(基本功能) 04. 程序设计(放大功能) 05. 程序设计(放大功能) 06. 附录 01. 概述 结合前面所学 ...

最新文章

  1. Android 自定义控件开发入门(一)
  2. 从内部自用到对外服务,配置管理的演进和设计优化实践
  3. python表白-教你如何用Python表白
  4. linux软件包安装方式汇总
  5. CodeForces Goodbye 2017
  6. 90后一代人还能通过攒钱改变现状吗?
  7. 江西计算机类单招学校有哪些专业,江西省2021年单招学校有哪些专业适合女生...
  8. 2018第17周总结
  9. Linux安装mysql-5.7.17
  10. eclipse中debug断点上有一个斜杠是什么
  11. python中re的group方法详解(来自官方文档的权威解释)
  12. C语言经典例17-统计字符个数
  13. 2022年医院三基考试药师(中医临床)考试模拟试题卷及答案
  14. 用ZBrush和Maya建模雕刻一位灵长类动物飞行员 你必须要了解角色是不是有甲方客户的创作需求或是基于其他画师的概念。
  15. python api文档生成二维码_使用Python第三方库生成二维码
  16. 健身和计算机未来哪个好,健身教练未来的发展前景原来这么好,你知道吗?
  17. jquery实现截取pc图片_Cropper.js 实现裁剪图片并上传(PC端)
  18. usleep的调用过程
  19. 拜耳启动营养补充计划,到2030年每年帮助全球5000万人获得维生素和矿物质
  20. NLP_learning 中文基本任务与处理(分词、停用词、词性标注、语句依存分析、关键词抽取、命名实体识别)介绍、jieba工具库

热门文章

  1. Uva 11178 Morley定理
  2. python 多进程 调用模块内函数_python--多进程的用法详解实例
  3. 网络协议:TCP连接管理
  4. (56)FPGA面试题-如果连线宽度不匹配怎么办?
  5. diag开关什么意思_1P空气开关便宜、好用,为什么电工师傅却要我们买2P空气开关?...
  6. 6002.mavlink通过xml生成自定义消息
  7. STM32 位段详解
  8. linux命令详解(arm交叉编译器)
  9. 【声学基础】概述——振动学
  10. linux网络代码结构