zoukankan      html  css  js  c++  java
  • html5 写字

    • 实现思路

        利用html5的canvas写字,思路就是记录鼠标移动过程中的点,然后用线连接起来就组成字.

    • 具体实现

        在鼠标按下时记录这个坐标,作为起始点,

        鼠标移动时,从起始点开始把移动过程中的点用线连接起来.

        鼠标松开时或者离开canvas时,停止连线.

    • 涉及canvas技术

        var canvas = document.getElementById("myCanvas");

        var ctx = canvas.getContext('2d');  //获得canvas上下文

        ctx.moveTo(moveX,moveY);//将moveX,moveY作为起始点

        ctx.lineTo(evt.layerX,evt.layerY);//在当前坐标与evt.layerX,evt.layerY之间画线

    • 完整代码
    <html>  
     <head>  
      <title>canvas 写字</title>  
      </head>  
     <body>  
    <div style="border:1px solid #FF0000; 800px;height:450px;" >
    <canvas id="myCanvas" width="800" height="450">你的浏览器不支持,请使用火狐\谷歌等浏览器</canvas>  
    </div>
    鼠标:<input type="text" id="show"/>
    <script>  
     var canvas = document.getElementById("myCanvas");  
     canvas.addEventListener('mousemove', onMouseMove, false);  
     canvas.addEventListener('mousedown', onMouseDown, false);  
     canvas.addEventListener('mouseup', onMouseUp, false);  
     canvas.addEventListener('mouseout',onMouseOut,false);
      
     var show=document.getElementById("show"); 
     var ctx = canvas.getContext('2d');  //获得canvas上下文
       
     var flag = 0;  
     var isMoved=false;
     var moveX,moveY; 
     function onMouseMove(evt) {   
        if (flag == 1) {     
             show.value="X:"+evt.layerX+"   Y:"+evt.layerY;
        if(isMoved)
        {
            isMoved=false;
            ctx.moveTo(moveX,moveY);
        }
           ctx.lineTo(evt.layerX,evt.layerY);
           ctx.stroke();   
        }  
     }  
     function onMouseDown(evt) {  
            flag = 1;  
        isMoved=true;
        moveX=evt.layerX;
        moveY=evt.layerY;  
     }  
     function onMouseUp(evt) {   
            flag = 0;   
     }  
     function onMouseOut(evt)
     {
         flag=0;
     }
    </script>  
    </body>  
    </html> 
  • 相关阅读:
    Dirichlet Process 和 Dirichlet Process Mixture模型
    也说说EM
    Seven Steps to Success Machine Learning in Practice
    matlab norm 范式
    nginx中时间的管理
    Android中解析网络请求的URL
    jsp if else c标签 总结
    Android开发系列之button事件的4种写法
    oracle中split的使用
    Unix C++(boost) 线程同步和线程组
  • 原文地址:https://www.cnblogs.com/liqiao/p/html5.html
Copyright © 2011-2022 走看看