使用canvas制作在线画板

canvas绘图的强大功能,让人前仆后继的去研究它。代码全部加起来不足百行。还用到了h5中的<input type="color"/>和<input type="range"/>

使得页面更加简洁。

本文只用了鼠标的三个事件 onmousedown onmousemove onmouseup就轻松实现了网页画板的制作。

上代码:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <style type="text/css">
 7         #canvas{
 8             border: 1px solid #333;
 9             display: block;
10             margin:20px auto;
11         }
12         #color{
13             width:100px;
14             height:32px;
15             position:absolute;
16             right:115px;
17             top:200px;
18         }
19             #range{
20             width:100px;
21             height:32px;
22             position:absolute;
23             right:115px;
24             top:125px;
25         }
26         #demo{
27             background:black;
28             width:100px;
29             height:5px;
30             position:absolute;
31             right:115px;
32             top:100px;
33         }
34     </style>
35 </head>
36 <body background-color="rgba(0,0,0,0.5)">
37 <div class="box">
38     <h3 align="center">CANVAS制作简单在线画板</h3>
39     <canvas id="canvas" width="800" height="600"></canvas>
40     <input type="color" id="color"/>
41     <div id="demo"></div>
42     <input type="range" id="range" min="1" max="10"/>
43 </div>
44 <script type="text/javascript">
45     var canvas=document.getElementById("canvas");
46     var cxt=canvas.getContext("2d");
47     var color=document.getElementById("color");
48     var size=document.getElementById("range");
49     var demo=document.getElementById("demo");
50     //根据size的变化来使得size上面的线条演示画笔粗细。
51     size.onchange=function(){
52         demo.style.height=size.value+"px";
53     }
54     //使得color的颜色与演示线条的颜色一致
55     color.onchange=function(){
56         demo.style.background=color.value;
57     }
58     var flag=false;
59     //鼠标按下
60     canvas.onmousedown= function (e) {
61         var mouseX= e.pageX-this.offsetLeft;
62         var mouseY= e.pageY-this.offsetTop;
63         flag=true;
64         cxt.beginPath();
65         cxt.lineWidth=size.value;
66         cxt.strokeStyle=color.value;
67         cxt.moveTo(mouseX,mouseY);
68     };
69     //鼠标移动
70     canvas.onmousemove= function (e) {
71         var mouseX= e.pageX-this.offsetLeft;
72         var mouseY= e.pageY-this.offsetTop;
73         if(flag){
74
75             cxt.lineTo(mouseX,mouseY);
76             cxt.stroke();
77         }
78     }
79     //鼠标松开
80     canvas.onmouseup= function (e) {
81         flag=false;
82     }
83 </script>
84 </body>
85 </html>

大家做成后的木模样

时间: 2024-08-25 13:17:07

使用canvas制作在线画板的相关文章

如何使用 HTML5 Canvas 制作水波纹效果

原文:如何使用 HTML5 Canvas 制作水波纹效果 今天,我们继续分享 JavaScript 实现的效果例子,这篇文章会介绍使用 JavaScript 实现水波纹效果.水波效果以图片为背景,点击图片任意位置都会触发.有时候,我们使用普通的 Javascript 就可以创建一个很有趣的解决功能. 在线演示      源码下载 Step 1. HTML 和以前一样,首先是 HTML 代码: <!DOCTYPE html> <html> <head> <meta

HTML5移动开发之路(10)——在线画板

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(10)--在线画板 在这一篇文章中我们用HTML5来实现一个在线的画板,玩过你画我猜的朋友今天也可以做一个简单的你画我猜小游戏啦,效果如下图所示: 过程很简单直接上代码了: [html] view plain copy print? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

Canvas制作的下雨动画

简介 在codepen上看到一个Canvas做的下雨效果动画,感觉蛮有意思的.就研究了下,这里来分享下,实现技巧.效果可以见下面的链接. 霓虹雨: http://codepen.io/natewiley/full/NNgqVJ/ 效果截图: Canvas动画基础 大家都知道,Canvas其实只是一个画板.我们可以应用canvas的api在上面绘制各种图形.Canvas 2D 的API:https://developer.mozilla.org/en-US/docs/Web/API/CanvasR

用Canvas制作可以根据手势摆动的树

用Canvas制作可以根据手势摆动的树 根据工作的需要,制作一个摆动的树做为页面的背景.为了增加页面的交互性,我又为背景中的树增加了鼠标(触控)事件,使他能够根据鼠标(触控)做出相应的动作,当手指做上下或者左右滑动的时候树会跟着摆动.先看看最终效果. Step1.完成HTML页面,新建一个Tree类 完成HTML页面后新建一个Tree类用来记录树的各个属性.其中x,y为树根部的坐标值,branchLen,branchWidth分别是树枝的长度与宽度,depth为树枝的层数,canvas用来接页面

用Canvas制作简单的画图工具

今天用Canvas制作了一个画图工具,非常简单,功能也不是很多,主要有背景网格,画线,画圆,画矩形和画圆角矩形,也用到了canvas的一些基本知识,在这里一一列举. 1.线段的绘制: 如何绘制真正的1像素的线段? 如果在像素边界处绘制一条1像素宽的垂直线段,那么canvas的绘图环境对象会试着将半个像素画在边界中线的右边,将另外半个像素画在边界中线的左边.然而,在一个整像素的范围内绘制半个像素宽的线段是不可能的,,所以左右两个方向上的半像素都被扩展为1像素.如图所示 本来我们想要将线段绘制在深灰

如何制作在线参考手册(转)

看到很多网站的在线的手册,自己很是好奇,准备自己也搞一个在线手册,下面是制作过程 制作在线参考手册 步骤: 要有chm版本的手册 转换chm为html,推荐工具:CHM Encoder绿色版 制作手册导航首页(这是难点) 上传服务器-ok 下面以制作jquery在线手册为例 jquery手册版本--jQuery 1.4.1中文版 把chm转换成html,工具是:CHM Encoder绿色版,转换之后可以看到有很多html页面,但是这样查找手册的话很不方便,需要一个良好的导航首页,但是如果自己手工

利用canvas制作乱跑的小球

canvas制作乱跑的小球 说明:将下面的代码放到html的body就可以,键盘控制上(W)下(S)左(A)右(D) <body> <canvas id="canvas" style="border: 1px solid #000;display: block;margin:30px auto;"></canvas> <script type="text/javascript"> var myCan

酷!使用 jQuery &amp; Canvas 制作相机快门效果

在今天的教程中,我们将使用 HTML5 的 Canvas 元素来创建一个简单的摄影作品集,它显示了一组精选照片与相机快门的效果.此功能会以一个简单的 jQuery 插件形式使用,你可以很容易地整合到任何网站. 效果演示     插件下载 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12个让人惊叹的的创意的 404 错误页面设计 让网站动起来!12款优秀的 jQuery 动画插件 十分惊艳的8个 HTML5 & Java

Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏

Vue+WebSocket+ES6+Canvas 制作「你画我猜」小游戏 转载 来源:jrainlau 链接:https://segmentfault.com/a/1190000005804860 项目地址:https://github.com/jrainlau/draw-something 下载 & 运行 git clone [email protected]:jrainlau/draw-something.git cd draw-something && npm install