栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用鼠标在HTML5 Canvas上绘制

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用鼠标在HTML5 Canvas上绘制

这是一个工作示例。

 <html>    <script type="text/javascript">    var canvas, ctx, flag = false,        prevX = 0,        currX = 0,        prevY = 0,        currY = 0,        dot_flag = false;    var x = "black",        y = 2;    function init() {        canvas = document.getElementById('can');        ctx = canvas.getContext("2d");        w = canvas.width;        h = canvas.height;        canvas.addEventListener("mousemove", function (e) { findxy('move', e)        }, false);        canvas.addEventListener("mousedown", function (e) { findxy('down', e)        }, false);        canvas.addEventListener("mouseup", function (e) { findxy('up', e)        }, false);        canvas.addEventListener("mouseout", function (e) { findxy('out', e)        }, false);    }    function color(obj) {        switch (obj.id) { case "green":     x = "green";     break; case "blue":     x = "blue";     break; case "red":     x = "red";     break; case "yellow":     x = "yellow";     break; case "orange":     x = "orange";     break; case "black":     x = "black";     break; case "white":     x = "white";     break;        }        if (x == "white") y = 14;        else y = 2;    }    function draw() {        ctx.beginPath();        ctx.moveTo(prevX, prevY);        ctx.lineTo(currX, currY);        ctx.strokeStyle = x;        ctx.lineWidth = y;        ctx.stroke();        ctx.closePath();    }    function erase() {        var m = confirm("Want to clear");        if (m) { ctx.clearRect(0, 0, w, h); document.getElementById("canvasimg").style.display = "none";        }    }    function save() {        document.getElementById("canvasimg").style.border = "2px solid";        var dataURL = canvas.toDataURL();        document.getElementById("canvasimg").src = dataURL;        document.getElementById("canvasimg").style.display = "inline";    }    function findxy(res, e) {        if (res == 'down') { prevX = currX; prevY = currY; currX = e.clientX - canvas.offsetLeft; currY = e.clientY - canvas.offsetTop; flag = true; dot_flag = true; if (dot_flag) {     ctx.beginPath();     ctx.fillStyle = x;     ctx.fillRect(currX, currY, 2, 2);     ctx.closePath();     dot_flag = false; }        }        if (res == 'up' || res == "out") { flag = false;        }        if (res == 'move') { if (flag) {     prevX = currX;     prevY = currY;     currX = e.clientX - canvas.offsetLeft;     currY = e.clientY - canvas.offsetTop;     draw(); }        }    }    </script>    <body onload="init()">        <canvas id="can" width="400" height="400" ></canvas>        <div >Choose Color</div>        <div  id="green" onclick="color(this)"></div>        <div  id="blue" onclick="color(this)"></div>        <div  id="red" onclick="color(this)"></div>        <div  id="yellow" onclick="color(this)"></div>        <div  id="orange" onclick="color(this)"></div>        <div  id="black" onclick="color(this)"></div>        <div >Eraser</div>        <div  id="white" onclick="color(this)"></div>        <img id="canvasimg"  >        <input type="button" value="save" id="btn" size="30" onclick="save()" >        <input type="button" value="clear" id="clr" size="23" onclick="erase()" >    </body>    </html>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/575359.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号