canvas寫字板功能程式碼例項
分享一段程式碼例項,它利用canvas實現了寫字板功能。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <canvas id="container" style="background:#666"></canvas> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script> var container = document.getElementById('container'); var context = container.getContext('2d'); var paint = false; //判斷是否需要繪畫 var mouseX = 0, mouseY = 0, nowX = 0, nowY = 0; //儲存座標記錄 var position = { reset: function(actionX, actionY, goalX, goalY) { //座標替換 paint = true; var order = "" + actionX + "=" + goalX + "," + actionY + "=" + goalY; eval(order); console.log(order); }, init: function() { //座標清零 console.log("init"); paint = false; mouseX = 0; mouseY = 0; nowX = 0; nowY = 0; } } var canvas = { init: function() { //canvas初始化 context.strokeStyle = "blue"; context.strokeRect(0, 0, 300, 200) }, draw: function(lastX, lastY, nowX, nowY) { //canvas劃線 context.strokeStyle = "yellow"; context.lineWidth = 2; context.beginPath(); context.moveTo(lastX, lastY); context.lineTo(nowX, nowY); context.stroke(); position.reset('mouseX', 'mouseY', nowX, nowY); }, redraw: function() { //canvas重繪 position.init(); }, } $('#container').mousedown(function(e) { position.reset('mouseX', 'mouseY', e.pageX - this.offsetLeft, e.pageY - this.offsetTop); console.log(mouseX + ":" + mouseY); }) $('#container').mousemove(function(e) { if (paint) { console.log(mouseX + ":" + mouseY); position.reset('nowX', 'nowY', e.pageX - this.offsetLeft, e.pageY - this.offsetTop); canvas.draw(mouseX, mouseY, nowX, nowY); } }) $("#container").mouseup(function(e) { if (paint) { position.init(); // canvas.returnData(); } }) $("#container").mouseleave(function(e) { if (paint) { position.init(); } }) </script> </body> </html>
相關文章
- canvas刮刮樂程式碼例項Canvas
- canvas載入效果程式碼例項Canvas
- canvas繪製扇形程式碼例項Canvas
- canvas原型鐘錶效果程式碼例項Canvas原型
- canvas繪製網格程式碼例項Canvas
- canvas氣泡上浮效果程式碼例項Canvas
- canvas繪製機器貓程式碼例項Canvas
- canvas繪製拋物線程式碼例項Canvas線程
- canvas translate()、scale()和rotate()方法程式碼例項Canvas
- canvas繪製箭頭效果程式碼例項Canvas
- canvas繪製圓形鐘錶程式碼例項Canvas
- canvas 例項之鬧鐘Canvas
- 【微信小程式canvas】實現小程式手寫板使用者簽名(附程式碼)微信小程式Canvas
- CSS3文字凹凸效果程式碼例項CSSS3
- dom操作程式碼例項
- css梯形程式碼例項CSS
- CSS3文字陰影效果程式碼例項CSSS3
- JavaScript in運算子程式碼例項JavaScript
- 設計模式例項程式碼設計模式
- table表格美化程式碼例項
- 純css tab選項卡程式碼例項CSS
- jQuery tab選項卡效果程式碼例項jQuery
- redux樣板程式碼簡化寫法Redux
- canvas 塗鴉畫板,支援筆寫、手寫、滑鼠繪圖Canvas繪圖
- CSS空心箭頭程式碼例項CSS
- JavaScript運動框架程式碼例項JavaScript框架
- jQuery.map()方法程式碼例項jQuery
- CSS橢圓效果程式碼例項CSS
- CSS條紋背景程式碼例項CSS
- flex居中佈局程式碼例項Flex
- JavaScript取餘數程式碼例項JavaScript
- table細線表格例項程式碼
- CSS 隔行變色程式碼例項CSS
- HTML5 拖拽程式碼例項HTML
- JavaScript 阻止事件冒泡程式碼例項JavaScript事件
- [例項分割]Condinst程式碼筆記筆記
- html5 canvas 實現光線沿不規則路徑運動例項程式碼HTMLCanvas
- jquery.idTabs.min.js選項卡程式碼例項jQueryJS
- 美化滾動條效果程式碼例項