最近刚学了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>

运行效果如图

仍然有一些问题:

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

滑鼠走动过快会产生断点

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

更多相关文章

  1. html5 地理位置定位的时候,想用enableHighAccuracy提高精确度,但是
  2. 在PHP中更改关联数组索引的位置
  3. 按钮和文本移回原始位置
  4. ubuntu_mysql怎么判断自己的库和头文件的位置
  5. centos7 移动mysql5.7.19 数据存储位置
  6. js金额数字格式化实现代码(三位加逗号处理保留两位置小数)
  7. js“DOM事件”之鼠标事件、js的测试方法、js代码的放置位置
  8. 使用谷歌地图computeDistanceBetween获取最近的位置返回NaN
  9. Google Maps API v3:如何设置缩放级别和地图中心到用户提交的位置

随机推荐

  1. android,进入页面textview默认获得焦点问
  2. android permission Suggestion: add 'to
  3. android更新
  4. Cocos2d-x Lua实现从Android回调到Lua的
  5. 解决 Android SDK下载和更新失败“Connec
  6. Android 创建全局变量和Context
  7. Android引用资源(resources) vs 引用样式属
  8. Android 使用ADB命令安装、卸载软件
  9. TabHost—多种实现
  10. Android下编译自己的库文件jar并在应用中