canvas简易画画板(PC端和移动端)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
    <style type="text/css">
        canvas {
            border: 1px solid #ccc;
        }
        html{
            overflow: hidden;
        }
        *{
            margin: 0px;
            padding: 0px;
        }
    </style>
</head>
<body>
    <input id="colorSelect" type="color" name="" value="" placeholder="">
    <input type="submit" name="" value="清空画板" onclick="qingkong()">
    <br>
    <canvas width="500" height="500" id="canvas">
        您的浏览器不支持
    </canvas>
</body>
<script>
  var selector = document.getElementById("colorSelect");
    // 声明color的全局变量
    var color = null;
    // 获取color的颜色
    selector.onchange = function(){
        color = this.value;
    }
    var canvas = document.getElementById("canvas");
    var cxt = canvas.getContext("2d");    
    if(document.documentElement.clientWidth>768){    
           huaD();
           qingkong();
 }else{
        huaS();
        qingkong();
  }
//当屏幕发生变化时触发 
 window.onresize = function(){          
   if(document.documentElement.clientWidth>768){    
           huaD();
           qingkong(); 
 }else{
         huaS();
        qingkong();
 }
}
//pc端触发
      function huaD(){
         canvas.onmousedown = function(e){
        // 获取canvas画面上的x y 轴
        var x = e.clientX - canvas.offsetLeft;
        var y = e.clientY - canvas.offsetTop;
        cxt.beginPath();
        cxt.moveTo(x,y);
        canvas.onmousemove = function(e){
            var x = e.clientX - canvas.offsetLeft;
            var y = e.clientY - canvas.offsetTop;
            cxt.lineTo(x,y);
            cxt.strokeStyle=color;
            cxt.stroke();
        }
        // 鼠标抬起事件 把上一个的move的事件清空
        canvas.onmouseup = function(){
            canvas.onmousemove = null;
        }
    }

  }
//移动端触发
  function huaS(){
            canvas.addEventListener("touchstart", function(e){
             var x = e.changedTouches[0].clientX - e.target.offsetLeft;
             var y = e.changedTouches[0].clientY - e.target.offsetTop;
             cxt.beginPath();
             cxt.moveTo(x,y);

             canvas.addEventListener("touchmove", function(e){                 
                e.preventDefault(); 
                var x = e.changedTouches[0].clientX - e.target.offsetLeft;
                var y = e.changedTouches[0].clientY - e.target.offsetTop;              
                cxt.lineTo(x,y);
                cxt.strokeStyle=color;
                cxt.stroke();         
            }, false)
        }, false)
  }
//清空画板
 function qingkong(){
        cxt.clearRect(0,0,500,500);
        console.log(11);
     }

//禁止浏览器动来动去
  document.body.addEventListener("touchmove", function(e){
         e.preventDefault();
     })
</script>


</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 场景 现在的需求是这样,在pc端访问www.one.com和m.one.com都跳转到www.one.com 而...
    阿亮私语阅读 11,401评论 0 5
  • 崎岖路很长 长得要转几个弯 人生会在得意时开花 也会在缤纷时感怀 一帆风顺 会把你醉死在平坦 泥泞里呆几分 如出污...
    当代诗人云烟阅读 198评论 9 5
  • 这世上,赢的多半还是薄情人。 前段时间看东野圭吾的小说,他说人与人之间的情断义绝,并不需要什么具体的理...
    度一场是非阅读 133评论 0 0
  • 断桥边伫立着傻傻的村姑,断桥对面有座仙泉山。山上有者(不,正当风华正茂),常在凌晨两三点钟练功。闲练的舞姿惹得村姑...
    卢微阅读 243评论 1 8