用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能

2020-04-21 23:47:31易采站长站整理

现在,我们使用clearRect()方法对实心圆中以圆心(100,100)为中心,周边各10px的矩形区域部分进行擦除。

JavaScript Code复制内容到剪贴板

<script type="text/javascript">   
//获取Canvas对象(画布)   
var canvas = document.getElementById("myCanvas");   
//简单地检测当前浏览器是否支持Canvas对象,以免在一些不支持html5的浏览器中提示语法错误   
if(canvas.getContext){     
    //获取对应的CanvasRenderingContext2D对象(画笔)   
    var ctx = canvas.getContext("2d");   
       
    //绘制一个以坐标点(100,10)为圆心、半径为50px的圆形   
    ctx.arc(100, 100, 50, 0, Math.PI * 2, false);   
       
    //绘制并填充圆形内部   
    ctx.fill();   
       
    //擦除矩形区域内的图形   
    ctx.clearRect(90, 90, 20, 20);   
}   
</script>  

对应的显示效果如下(是不是有点像一个铜钱?)。
2016315111914378.png (417×320)

页面上我们可以擦除一片页面上的区域,让其显示出背景图片。
下面的例子中我们擦除了矩形中的空白让其显示页面背景:

JavaScript Code复制内容到剪贴板

<!DOCTYPE html>   
<html lang="zh">   
<head>   
    <meta charset="UTF-8">   
    <title>clearRect()</title>   
    <style>   
        body { background: url("./images/bg2.jpg") repeat; }  
        #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
    </style>   
</head>   
<body>   
<div id="canvas-warp">   
    <canvas id="canvas">   
        你的浏览器居然不支持Canvas?!赶快换一个吧!!   
    </canvas>