溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5 Canvas怎么實現(xiàn)橡皮擦功能

發(fā)布時間:2021-08-10 14:43:33 來源:億速云 閱讀:439 作者:chen 欄目:web開發(fā)

本篇內(nèi)容主要講解“HTML5 Canvas怎么實現(xiàn)橡皮擦功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“HTML5 Canvas怎么實現(xiàn)橡皮擦功能”吧!

在現(xiàn)實世界中,我們使用畫筆在畫板上進行繪畫;在html5 canvas中,我們同樣可以使用canvas的畫筆——CanvasRenderingContext2D對象在canvas上進行繪畫。眾所周知,我們的畫筆一般都會與橡皮擦配套使用,以便于糾正繪畫過程中的錯誤并重新繪畫。在html5 canvas中,CanvasRenderingContext2D對象也同樣給我們提供了一個可以永遠重復使用的橡皮擦——clearRect()方法。

XML/HTML Code復制內(nèi)容到剪貼板

  1. clearRect(x, y, width, height)  

CanvasRenderingContext2D對象的clearRect()方法用于清除canvas內(nèi)以指定坐標點(x,y)為左上角、寬度為width、高度為height的矩形區(qū)域中的所有圖形像素。

下面,我們來看一個實際的例子。我們先繪制一個半徑為50px的實心圓,然后使用橡皮擦clearRect()對其中的局部區(qū)域進行擦除。繪制圓形的原始html5代碼如下:

JavaScript Code復制內(nèi)容到剪貼板

  1. <!DOCTYPE html>   

  2. <html>   

  3. <head>   

  4. <meta charset="UTF-8">   

  5. <title>使用HTML5 clearRect()擦除指定的矩形區(qū)域的入門示例</title>   

  6. </head>   

  7. <body>   

  8.   

  9. <!-- 添加canvas標簽,并加上紅色邊框以便于在頁面上查看 -->   

  10. <canvas id="myCanvas" width="400px" height="300px" style="border: 1px solid red;">   

  11. 您的瀏覽器不支持canvas標簽。   

  12. </canvas>   

  13.   

  14. <script type="text/javascript">   

  15. //獲取Canvas對象(畫布)   

  16. var canvas = document.getElementById("myCanvas");   

  17. //簡單地檢測當前瀏覽器是否支持Canvas對象,以免在一些不支持html5的瀏覽器中提示語法錯誤   

  18. if(canvas.getContext){     

  19.     //獲取對應的CanvasRenderingContext2D對象(畫筆)   

  20.     var ctx = canvas.getContext("2d");   

  21.        

  22.     //繪制一個以坐標點(100,10)為圓心、半徑為50px的圓形   

  23.     ctx.arc(100, 100, 50, 0, Math.PI * 2, false);   

  24.        

  25.     //繪制并填充圓形內(nèi)部   

  26.     ctx.fill();      

  27. }   

  28. </script>   

  29. </body>   

  30. </html>  

對應的顯示效果如下:
HTML5 Canvas怎么實現(xiàn)橡皮擦功能

現(xiàn)在,我們使用clearRect()方法對實心圓中以圓心(100,100)為中心,周邊各10px的矩形區(qū)域部分進行擦除。

JavaScript Code復制內(nèi)容到剪貼板

  1. <script type="text/javascript">   

  2. //獲取Canvas對象(畫布)   

  3. var canvas = document.getElementById("myCanvas");   

  4. //簡單地檢測當前瀏覽器是否支持Canvas對象,以免在一些不支持html5的瀏覽器中提示語法錯誤   

  5. if(canvas.getContext){     

  6.     //獲取對應的CanvasRenderingContext2D對象(畫筆)   

  7.     var ctx = canvas.getContext("2d");   

  8.        

  9.     //繪制一個以坐標點(100,10)為圓心、半徑為50px的圓形   

  10.     ctx.arc(100, 100, 50, 0, Math.PI * 2, false);   

  11.        

  12.     //繪制并填充圓形內(nèi)部   

  13.     ctx.fill();   

  14.        

  15.     //擦除矩形區(qū)域內(nèi)的圖形   

  16.     ctx.clearRect(90, 90, 20, 20);   

  17. }   

  18. </script>  

對應的顯示效果如下(是不是有點像一個銅錢?)。
HTML5 Canvas怎么實現(xiàn)橡皮擦功能


頁面上我們可以擦除一片頁面上的區(qū)域,讓其顯示出背景圖片。
下面的例子中我們擦除了矩形中的空白讓其顯示頁面背景:

JavaScript Code復制內(nèi)容到剪貼板

  1. <!DOCTYPE html>   

  2. <html lang="zh">   

  3. <head>   

  4.     <meta charset="UTF-8">   

  5.     <title>clearRect()</title>   

  6.     <style>   

  7.         body { background: url("./images/bg2.jpg") repeat; }  

  8.         #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   

  9.     </style>   

  10. </head>   

  11. <body>   

  12. <div id="canvas-warp">   

  13.     <canvas id="canvas">   

  14.         你的瀏覽器居然不支持Canvas?!趕快換一個吧??!   

  15.     </canvas>   

  16. </div>   

  17.   

  18. <script>   

  19.     window.onload = function(){   

  20.         var canvas = document.getElementById("canvas");   

  21.         canvas.width = 800;   

  22.         canvas.height = 600;   

  23.         var context = canvas.getContext("2d");   

  24.         context.fillStyle = "#FFF";   

  25.         context.fillRect(0,0,800,600);   

  26.   

  27.         //清空畫布   

  28.         context.clearRect(0,0,canvas.width,canvas.height);   

  29.   

  30.     };   

  31. </script>   

  32. </body>   

  33. </html>  

HTML5 Canvas怎么實現(xiàn)橡皮擦功能

到此,相信大家對“HTML5 Canvas怎么實現(xiàn)橡皮擦功能”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI