zoukankan      html  css  js  c++  java
  • [原创]基于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>

     运行效果如图

    仍然有一些问题:

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

    滑鼠走动过快会产生断点

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

  • 相关阅读:
    第二次安卓作业
    第十一次作业
    第十一次上机练习
    第十次作业
    第十次上机练习
    第九次作业
    第九次上机练习
    添加用户 Android 6
    Android 5
    activity带数据跳转
  • 原文地址:https://www.cnblogs.com/SHL-sherly/p/4324043.html
Copyright © 2011-2022 走看看