H5元素canvas制作視圖

1.利用 canvas 寫一個(gè) 牛 字:

<!-- 寬高必須寫在元素本身 canvas id="canvasId" width="600px" height="400px" -->

? ? <canvas id="canvasId" width="600px" height="400px" style="border: 1px solid red;"></canvas>

? ? <button id="btn">清除</button>

? ? <script>

? ? ? ? /* 獲取canvas元素 */

? ? ? ? let cavsDOM = document.getElementById('canvasId');

? ? ? ? let btn = document.getElementById('btn')

? ? ? ? /* 創(chuàng)建canvas對象 */

? ? ? ? let cavs = cavsDOM.getContext('2d');

? ? ? ? /* 繪制一條直線 */

? ? ? ? /* 設(shè)置開始點(diǎn) */

? ? ? ? /* 距離左邊100,距離頂部100的起始點(diǎn) */

? ? ? ? cavs.moveTo(100,100);

? ? ? ? /* 距離左邊300,距離頂部100的起始點(diǎn) */

? ? ? ? cavs.lineTo(300,100)


? ? ? ? /* 起始點(diǎn) */

? ? ? ? cavs.lineTo(200,100)

? ? ? ? /* 終點(diǎn) */

? ? ? ? cavs.lineTo(200,350)

? ? ? ? cavs.moveTo(200,10);

? ? ? ? cavs.lineTo(200,550)

? ? ? ? cavs.moveTo(130,50);

? ? ? ? cavs.lineTo(40,250)

? ? ? ? cavs.moveTo(70,200);

? ? ? ? cavs.lineTo(330,200)

? ? ? ? /* 設(shè)置線條的顏色值 */

? ? ? ? cavs.strokeStyle = 'pink';

? ? ? ? /* 設(shè)置線條的粗細(xì) */

? ? ? ? cavs.lineWidth = "10"

? ? ? ? /* 把起始點(diǎn)和終點(diǎn)連起來 */

? ? ? ? cavs.stroke()

效果:


2.利用canvas寫一個(gè)畫板,添加清除鍵:

在之前的基礎(chǔ)上加上

?let move = false;

? ? ? ? cavsDOM.onmousedown = function(e){

? ? ? ? ? ? let event = e||window.event

? ? ? ? ? ? /* 兼容寫法 */

? ? ? ? ? ? let x = event.offsetX;

? ? ? ? ? ? let y = event.offsetY;

? ? ? ? ? ? cavs.moveTo(x,y);

? ? ? ? ? ? move = true

? ? ? ? }

? ? ? ? cavsDOM.onmousemove = function(e){

? ? ? ? ? ? let event = e||window.event

? ? ? ? ? ? /* 兼容寫法 */

? ? ? ? ? ? let x = event.offsetX;

? ? ? ? ? ? let y = event.offsetY;

? ? ? ? ? ? if(move){

? ? ? ? ? ? ? ? cavs.lineTo(x,y);

? ? ? ? ? ? ? ? cavs.stroke();

? ? ? ? ? ? }

? ? ? ? ? ? cavsDOM.onmouseup = function(e){

? ? ? ? ? ? ? ? move=false

? ? ? ? ? ? }

? ? ? ? ? ? btn.onclick = function(){

? ? ? ? ? ? ? ? cavs.beginPath()

? ? ? ? ? ? ? ? cavs.clearRect(0,0,cavsDOM.width,cavsDOM.height)

? ? ? ? ? ? }

? ? ? ? }

效果圖:


按清除鍵清除:


3. 創(chuàng)建和關(guān)閉路徑:

<body>

? ? <!-- 創(chuàng)建和關(guān)閉路徑 -->

? ? <canvas class="cav" width="600px" height="400px" style="border: 1px solid red;"></canvas>

? ? <script>

? ? ? ? let cavDOM = document.getElementsByClassName('cav')[0];

? ? ? ? let cav = cavDOM.getContext('2d');

? ? ? ? /* 如果需要閉合路徑 開始新的起點(diǎn)路徑時(shí) 都需要創(chuàng)建和關(guān)閉路徑 */

? ? ? ? //開始創(chuàng)建路徑

? ? ? ? //cav.beginPath()

? ? ? ? //關(guān)閉路徑

? ? ? ? //cav.closePath()


? ? ? ? //純使用線來畫三角形 ?最上面終點(diǎn)箭頭有瑕疵

? ? ? ? ?/* cav.moveTo(200,100); ?起始點(diǎn)

? ? ? ? ?cav.lineTo(100,250); ? ? 起始點(diǎn)到第二個(gè)點(diǎn)

? ? ? ? ?cav.lineTo(350,250) ? ? ? 第二個(gè)點(diǎn)到第三個(gè)點(diǎn)

? ? ? ? ?cav.lineTo(200,100);*/ ? ? ?// 第三個(gè)個(gè)點(diǎn)到第一個(gè)點(diǎn)

? ? ? ? ?//開始繪制

? ? ? ? ?cav.beginPath()

? ? ? ? ?cav.moveTo(200,100); ?//第一個(gè)點(diǎn)的位置

? ? ? ? ?cav.lineTo(60,250); ?//第二個(gè)點(diǎn)的位置

? ? ? ? ?cav.lineTo(350,250) ? //第三個(gè)點(diǎn)的位置

? ? ? ? ?//結(jié)束繪制

? ? ? ? ?cav.closePath()

? ? ? ? ?cav.fillStyle='pink'

? ? ? ? ?cav.fill();

? ? ? ? ?cav.strokeStyle = 'red';

? ? ? ? ?cav.lineWidth = '8'

? ? ? ? ?cav.stroke()

? ? </script>

</body>

效果圖:


4.制作矩形:

<body>

? ? <canvas width="600px" height="400px" style="border: 1px solid red;"></canvas>

? ? <script>

? ? ? ? let cavDOM = document.getElementsByTagName('canvas')[0];

? ? ? ? let cav = cavDOM.getContext('2d');

? ? ? ? /* cav.beginPath();

? ? ? ? cav.rect(100,100,300,200)

? ? ? ? cav.closePath()

? ? ? ? cav.fill()

? ? ? ? cav.stroke() */

? ? ? ? cav.fillStyle='green'

? ? ? ? cav.fillRect(100,100,300,200)

? ? ? ? /* 要先設(shè)置顏色再去填充 */

? ? ? ? /* cav.fillStyle='red'

? ? ? ? cav.fillRect(100,100,300,200) */

? ? ? ? /* 設(shè)置填充顏色不然默認(rèn)為黑色 */


? ? ? ? /* cav.strokeRect(x,y,width,height) 繪制矩形邊框 */

? ? ? ? cav.strokeStyle = 'red';

? ? ? ? cav.lineWidth = 8

? ? ? ? /* 大小不要用像素來計(jì)算 */

? ? ? ? cav.strokeRect(100,100,300,200)


? ? ? ? /* 清除矩形區(qū)域 */

? ? ? ? cav.clearRect(120,120,100,100)

? ? </script>

</body>

效果圖:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • h5新增標(biāo)簽canvas 1.基本概念 <!DOCTYPE html> 01-Canvas開...
    煤球快到碗里來閱讀 433評論 1 0
  • let canvasDom = document.getElementById('canvasId'); ...
    沖鋒敢死曾小賢閱讀 263評論 0 0
  • 【canvas】 畫圖 和img類似 兼容性高級瀏覽器 canvas里面想要畫畫必須用js配合 //1、準(zhǔn)備一直筆...
    米塔塔閱讀 943評論 0 9
  • canvas元素的基礎(chǔ)知識 在頁面上放置一個(gè)canvas元素,就相當(dāng)于在頁面上放置了一塊畫布,可以在其中進(jìn)行圖形的...
    oWSQo閱讀 10,448評論 0 19
  • 一、什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在網(wǎng)頁上繪制圖像 畫布是...
    EndEvent閱讀 788評論 0 1

友情鏈接更多精彩內(nèi)容