HTML5学习-使用 Canvas 来创建绘图应用程序
2014-03-17 15:41
597 查看
原文地址:http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/ 根据原文尝试了一下,很好的HTML5入门;
<!DOCTYPE html> <html> <head> <script src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ var coloringCanvas = $("#coloringBook"); var context = document.getElementById("coloringBook").getContext("2d"); var clickX = new Array(); var clickY = new Array(); var clickDrag = new Array(); var paint; var colorPurple = "#cb3594"; var colorGreen = "#659b41"; var colorYellow = "#ffcf33"; var colorBrown = "#986928"; var curColor = colorPurple;//current use color var clickColor = new Array(); var sizeSmall = 3; var sizeNormal = 5; var sizeLarge = 10; var sizeHuge = 20; var curSize = sizeNormal; var clickSize = new Array(); var toolCrayon = "Crayon";//蜡笔 var toolMarker = "Marker";//记号笔 var toolEraser = "Eraser";//橡皮 var curTool = toolMarker; var canvasWidth = context.canvas.width; var canvasHeight = context.canvas.height; function addClick(x, y, dragging) { clickX.push(x); clickY.push(y); clickDrag.push(dragging); if(curTool == toolEraser){//如果为橡皮工具 clickColor.push("white");//颜色设置白色 }else{ clickColor.push(curColor); } clickSize.push(curSize); } function redraw(){ context.clearRect(0, 0, canvasWidth, canvasHeight); // Clears the canvas context.lineJoin = "round"; for(var i=0; i < clickX.length; i++) { context.beginPath(); if(clickDrag[i] && i){ context.moveTo(clickX[i-1], clickY[i-1]); }else{ context.moveTo(clickX[i]-1, clickY[i]); } context.lineTo(clickX[i], clickY[i]); context.closePath(); context.strokeStyle = clickColor[i];//画笔颜色 context.lineWidth = clickSize[i];//画笔大小 context.stroke(); } //蜡笔工具处理 if(curTool == toolCrayon){ context.globalAlpha = 0.4; context.drawImage(crayonTextureImage, 0, 0, canvasWidth, canvasHeight); } context.globalAlpha = 1; } coloringCanvas.mousedown(function(e){ var mouseX = e.pageX - this.offsetLeft; var mouseY = e.pageY - this.offsetTop; paint = true; addClick(mouseX, mouseY); redraw(); }); coloringCanvas.mousemove(function(e){ if(paint){ addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true); redraw(); } }); coloringCanvas.mouseup(function(e){ paint = false; }); coloringCanvas.mouseleave(function(e){ paint = false; }); //clear the canvas $("#clearBtn").click(function(e){ //清空画布 context.clearRect(0, 0, canvasWidth, canvasHeight); // Clears the canvas //清空绘画信息数组 clickX = []; clickY = []; clickDrag = []; clickColor = []; clickSize = []; }); //choose a color $("#colorPurpleBtn").click(function(e){ curColor = colorPurple; }); $("#colorGreenBtn").click(function(e){ curColor = colorGreen; }); $("#colorYellowBtn").click(function(e){ curColor = colorYellow; }); $("#colorBrownBtn").click(function(e){ curColor = colorBrown; }); //choose a size $("#sizeSmallBtn").click(function(e){ curSize = sizeSmall; }); $("#sizeNormalBtn").click(function(e){ curSize = sizeNormal; }); $("#sizeLargeBtn").click(function(e){ curSize = sizeLarge; }); $("#sizeHugeBtn").click(function(e){ curSize = sizeHuge; }); //choose a tool $("#toolCrayonBtn").click(function(e){ curTool = toolCrayon; }); $("#toolMarkerBtn").click(function(e){ curTool = toolMarker; }); $("#toolEraserBtn").click(function(e){ curTool = toolEraser; }); }); </script> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> clear the canvas:<input id ="clearBtn" type="button" value="clear"> <br> choose a color: <input id ="colorPurpleBtn" type="button" value="Purple"> <input id ="colorGreenBtn" type="button" value="Green"> <input id ="colorYellowBtn" type="button" value="Yellow"> <input id ="colorBrownBtn" type="button" value="Brown"> <br> choose a size: <input id ="sizeSmallBtn" type="button" value="Small"> <input id ="sizeNormalBtn" type="button" value="Normal"> <input id ="sizeLargeBtn" type="button" value="Large"> <input id ="sizeHugeBtn" type="button" value="Huge"> <br> choose a tool: <input id ="toolCrayonBtn" type="button" value="Crayon"> <input id ="toolMarkerBtn" type="button" value="Marker"> <input id ="toolEraserBtn" type="button" value="Eraser"> <br> <canvas id="coloringBook" width="500" height="400" style="border: 1px solid grey"> </canvas> </body> </html>
相关文章推荐
- html5学习canvas基本使用:div在js前面;localStorage存储根据浏览器在不同的位置;应用程序缓存;placeholder 属性提供一种提示(hint),描述输入域所期待的值。
- html5学习笔记(6)使用canvas绘图2
- HTML5 canvas绘图基本使用方法
- html5学习笔记---03. Canvas简介,Canvas的使用方法
- html5 canvas学习--创建阴影
- Html5 学习系列(五)Canvas绘图API快速入门(2)
- HTML5学习(2) canvas标签的使用二
- HTML5之Canvas绘图——使用Canvas绘制图形的基本教程
- 使用HTML5的Canvas标签实现绘图板内拖拽元素
- iPhone开发学习笔记[3/50]-使用工具栏创建简单的多视图应用程序
- html5学习笔记---03. Canvas简介,Canvas的使用方法
- Html5 学习系列(五)Canvas绘图API快速入门(1)
- HTML5使用Canvas绘图小例
- HTML5 学习总结(四)——canvas绘图、WebGL、SVG
- Android使用学习之绘图(Canvas,Paint)与手势感应及其应用(乒乓球小游戏)
- HTML5绘图基础_01_Canvas的使用
- 使用 HTML5 canvas 进行 Web 绘图
- HTML 5 应用程序缓存(Application Cache)cache manifest 文件使用 html5 中创建manifest缓存以及更新方法 一个manifest文件会创建一份缓存,不同的manifest文件其缓存的内容是互不干扰的
- HTML5学习(2) canvas标签的使用三
- HTML5 canvas绘图基本使用方法