摘要:個人博客庫下載大致思路自己畫隨機傳入對象和參數可不傳參數背景色默認填充色默認方塊大小默認方法清除所有方塊隨機生成多少個方塊增加鼠標點擊移動繪畫實例庫使用
個人博客 http://taoquns.com/paper/59ba...
github https://github.com/Taoqun/can...
download 庫 下載canvas.toDataURL https://github.com/rndme/down...
大致思路
自己畫
隨機
傳入 canvas對象 和 options參數(可不傳) run( canvas , option )
參數
bgColor 背景色 默認 #e8e8e8
clickedColor 填充色 默認 #ff0000
boxSize 方塊大小 默認 30
方法
clean 清除所有方塊
Random(number) 隨機生成多少個方塊
增加鼠標點擊移動繪畫
html
js庫
function run(canvas, obj) { obj = obj || {} this.canvas = canvas this.cvs = canvas.getContext("2d") this.bgColor = obj.bgColor || "#e8e8e8" this.clickedColor = obj.clickedColor || "#ff0000" this.boxSize = obj.boxSize || 30 this.bgWidthLength = 0 this.bgHeightLength = 0 this.clickedArr = [] this.start() this.click() return this } run.prototype.start = function(){ this.bgWidthLength = parseInt( this.canvas.width / this.boxSize ) this.bgHeightLength = parseInt( this.canvas.height / this.boxSize ) this.drawBg() } run.prototype.click = function(){ let move = this.mousemove.bind(this) this.canvas.addEventListener("mousedown",function(e){ let o = this.computedXY(e.offsetX,e.offsetY) this.toggleClick(o) this.canvas.addEventListener("mousemove",move ) }.bind(this)) this.canvas.addEventListener("mouseup",function(e){ this.canvas.removeEventListener("mousemove",move ) }.bind(this)) } run.prototype.mousemove = function(e){ console.log(e.offsetX,e.offsetY) let o = this.computedXY(e.offsetX,e.offsetY) this.toggleClick(o,true) } run.prototype.computedXY = function(x,y){ for( let i=0;ii*this.boxSize && x < (i+1)*this.boxSize ){ x = i break; } } for( let i=0;i i*this.boxSize && y < (i+1)*this.boxSize ){ y = i break; } } return {x,y} } run.prototype.toggleClick = function(o,draw){ let has = {} has.is = true this.clickedArr.forEach(function(item,index){ if( item.x === o.x && item.y === o.y ){ has.is = false has.index = index } }) if(has.is){ this.clickedArr.push(o) this.drawBgBox(o.x*this.boxSize,o.y*this.boxSize,true) } if(!has.is && !draw){ this.clickedArr.splice(has.index,1) this.drawBgBox( o.x*this.boxSize,o.y*this.boxSize ) } } run.prototype.Random = function(length){ for(let i=0;i 使用
let canvas = document.querySelector(".main canvas") let cvs = canvas.getContext("2d") let a = new run(canvas) let clean = document.querySelector(".clean"); let random = document.querySelector(".random"); let down = document.querySelector(".down"); clean.onclick = function(){ a.clean() }; random.onclick = function(){ a.Random(100) }; down.onclick = function(){ download(canvas.toDataURL(),"test.png","image/png") }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82722.html
摘要:一如何正確設置尺寸有兩種一種是屬性,一般稱其為畫布尺寸,即圖形繪制的地方。一般稱其為畫板尺寸,用于渲染繪制完成的圖形。二如何在高分辨率屏幕上清晰顯示圖形上面說過,避免圖形變形失真,要保持畫布尺寸和畫板尺寸一致。 一、如何正確設置canvas尺寸? Canvas有兩種width、height:1、一種是width、height屬性,一般稱其為畫布尺寸,即圖形繪制的地方。默認值分別為300...
摘要:一如何正確設置尺寸有兩種一種是屬性,一般稱其為畫布尺寸,即圖形繪制的地方。一般稱其為畫板尺寸,用于渲染繪制完成的圖形。二如何在高分辨率屏幕上清晰顯示圖形上面說過,避免圖形變形失真,要保持畫布尺寸和畫板尺寸一致。 一、如何正確設置canvas尺寸? Canvas有兩種width、height:1、一種是width、height屬性,一般稱其為畫布尺寸,即圖形繪制的地方。默認值分別為300...
摘要:前言初學,做了一個畫板應用,地址點這里。本篇為的一些基礎思想和注意事項,不是基礎。主要是在于事件上的實踐經驗屏兼容屏會使用多個物理像素渲染一個獨立像素,導致一倍圖在屏幕上模糊,也是這樣,所以我們應該把畫布的大小設為元素大小的或倍。 前言 初學canvas,做了一個畫板應用,地址點這里 。本篇為canvas的一些基礎思想和注意事項,不是基礎api。主要是在于touch事件上的實踐經驗 r...
摘要:實現彩虹畫筆繪畫板指南作者簡介是推出的一個天挑戰。這部分不涉及內容,全部由來實現。實現彩虹畫筆繪畫板效果圖項目源碼分析源碼獲取節點支持不支持彩虹效控制筆觸大小控制繪制路徑源碼分析寬高設置屬性筆觸的形狀,有圓平方三種。 Day08 - HTML5 Canvas 實現彩虹畫筆繪畫板指南 作者:?liyuechun 簡介:JavaScript30 是 Wes Bos 推出的一個 30 天挑...
閱讀 428·2019-08-29 12:44
閱讀 3005·2019-08-26 17:49
閱讀 2420·2019-08-26 13:40
閱讀 1181·2019-08-26 13:39
閱讀 3658·2019-08-26 11:59
閱讀 1820·2019-08-26 10:59
閱讀 2459·2019-08-23 18:33
閱讀 2693·2019-08-23 18:30