[原创]基于html5新标签canvas写的一个小画板

最近刚学了canvas,写个小应用练习下

源代码

 1 <!DOCTYPE>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>無標題文件</title>
 6 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
 7 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css">
 8 <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
 9 <script type="text/javascript">
10 var drawable=false;
11 $(function(){
12     $("#drawOnBoard").css({"background-color":$("#backgroundcolorChooser").val()});
13 });
14 function changeBackgroundColor()
15 {
16     $("#drawOnBoard").css({"background-color":$("#backgroundcolorChooser").val()});
17 }
18 function setDrawable(sdrawable)
19 {
20     drawable=sdrawable;
21 }
22 function beginDrawPicture(event)
23 {
24     if(drawable==true)
25     {
26     var canvas=$("#drawOnBoard");
27     canvas=canvas[0];
28     var content=canvas.getContext("2d");
29
30     var mouseX=event.clientX;
31     var mouseY=event.clientY;
32
33     content.beginPath();
34
35     content.arc(mouseX,mouseY,$("#slider-fill").val()*2,0,Math.PI*2,true);
36
37     content.closePath();
38     content.fillStyle=$("#pencolorChooser").val();
39     content.fill();
40     }
41 }
42 </script>
43 <style type="text/css">
44 .chooseBar{
45     display:inline-block;
46     width:200px;
47 }
48 div.ui-input-text{
49     display:inline-block;
50     width:270px;
51 }
52 div.ui-slider{
53     display:inline-block;
54     width:300px;
55 }
56 </style>
57 </head>
58
59 <body>
60 <canvas id="drawOnBoard" width="600px" height="600px" onmousedown="setDrawable(true);" onMouseMove="beginDrawPicture(event);" onMouseUp="setDrawable(false);" style="border:5px wheat solid;background-color:white;float:left;"></canvas>
61 <div style="float:left;margin-top:50px;margin-left:20px;">
62 改变画笔颜色:<input type="color" id="pencolorChooser" class="chooseBar"/>
63 <br/>
64 改变画板颜色:<input type="color" id="backgroundcolorChooser" value="#ffffff" onChange="changeBackgroundColor();" class="chooseBar"/>
65 <br/>
66 改变画笔大小:<input type="range" name="slider-fill" id="slider-fill" value="5" min="1" max="10" step="1" data-highlight="true" class="chooseBar">
67 </div>
68 </body>
69 </html>

运行效果如图

仍然有一些问题:

改变浏览器位置时实际绘画位置和鼠标位置有差

滑鼠走动过快会产生断点

希望学习更多知识以后来改进

时间: 2025-01-05 19:06:19

[原创]基于html5新标签canvas写的一个小画板的相关文章

HTML5新标签&lt;canvas&gt;

基本用法 首先在body中写个<canvas>,设定大小,个人建议大小要在行内设置,不然在部分情况下会发生错误. CSS部分 给canvas加个边框,这边框只是为了方便看出canvas的边界,加不加都可以. <style type="text/css"> canvas{ border:1px solid #000; } </style> HTML部分 <canvas id="canvas" width="500&q

html5新标签及废弃元素

html5新标签 <canvas> 新元素 标签 描述 <canvas> 标签定义图形,比如图表和其他图像.该标签基于 JavaScript 的绘图 API 新多媒体元素 标签 描述 <audio> 定义音频内容 <video> 定义视频(video 或者 movie) <source> 定义多媒体资源 <video> 和 <audio> <embed> 定义嵌入的内容,比如插件. <track>

【HTML5】如何处理HTML5新标签的浏览器兼容版问题

HTML5规范毕竟是刚刚才定义完成的规范,还有一些浏览器并不能支持其中的新标签和新属性,尤其是IE8及以下版本浏览器.以下介绍一些在页面中使用HTML5新标签的实践方法,目的是让HTML5中的新标签在低级浏览器中也得到有限的支持,不至于影响整个的页面功能. 让浏览器识别HTML5规范中的新标签 IE8浏览器中还没有添加对HTML5新标签的支持,所以在IE8中无法直接展现HTML5新标签中的内容.庆幸的是IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以

HTML5中新增的语义化标签,及在IE5.5~9(IE9已经开始支持部分HTML5新标签了)支持这些新标签的兼容性处理。

一.前言 本文将介绍HTML5中新增的语义化标签,及在IE5.5~9(IE9已经开始支持部分HTML5新标签了)支持这些新标签的兼容性处理. 目录一坨: 二.语义化标签:article.aside.time.mark.section.header.footer.hgroup.progress.figure.figcaption.nav.meter.output.details.summary.ruby和main   三.让IE5.5~9支持HTML5新标签 1. IE5.5~8下对于不支持的标签

HTML5新标签解释及其使用场景

我们来看一下HTML 5提供的一些新的标签用法和HTML 4的区别 <article> 标签定义外部的内容.比如来自一个外部的新闻提供者的一篇新的文章,或者来自 blog 的文本,或者是来自论坛的文本,亦或是来自其他外部源内容.HTML5:<article></article>HTML4:<div></div> <aside> 标签定义 article 以外的内容:aside 的内容应该与 article 的内容相关.HTML5:&l

通过H5的新标签canvas做出一个时钟的全过程,希望对初学者有帮助

最近学习了H5中的一个新标签canvas并且用它做出了一个时钟,最下面是成品图像,还不错吧,这只是我学习中的一个小demo,做得有点粗糙,但终究是做出来了,以后再写自己的网页主页再做一个好看点放上去.接下来我将和你们分享如何制作这个时钟. 在body中添加canvas标签: <canvas id="myCanvas" width="600px" height="600px" style="border:1px solid #c3c

Html5新特性 &lt;canvas&gt;画板画直线

 下面例子为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht

让ie浏览器支持html5新标签的解决方法(使用html5shiv)

没估计错的话旧版浏览器都是不识别这些新增的标签所以都是用行内元素来处理解决的,所以,有一个解决办法的突破口就是让它变成块状元素就不会处于同一行了,这样在新旧浏览器都是可以显示同样的效果,再者就是让浏览器识别标签,需要新增标签,具体解决办法是: IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,代码如下: document.createElement('新标签'); / /新增创建新标签   方式一:Codi

html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

新特性: 1. 拖拽释放(Drag and drop) API 2. 语义化更好的内容标签(header,nav,footer,aside,article,section) 3. 音频.视频API(audio,video) 4. 画布(Canvas) API 5. 地理(Geolocation) API 6. 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失: 7. sessionStorage 的数据在浏览器关闭后自动删除 8. 表单控件,calendar.date