将一个canvas放在另一个canvas上面,实现图层叠加的效果
时间: 2023-10-26 22:04:01 浏览: 49
可以使用CSS的z-index属性来实现将一个canvas放在另一个canvas上面的效果。
首先,在HTML中创建两个canvas元素,并设置它们的位置和大小:
```html
<canvas id="canvas1" width="400" height="400" style="position:absolute; top:0; left:0; z-index:1;"></canvas>
<canvas id="canvas2" width="400" height="400" style="position:absolute; top:0; left:0; z-index:2;"></canvas>
```
其中,canvas1的z-index为1,canvas2的z-index为2,表示canvas2会覆盖在canvas1上面。
然后,在JavaScript中获取canvas元素,并在canvas2上绘制图形:
```javascript
var canvas1 = document.getElementById('canvas1');
var canvas2 = document.getElementById('canvas2');
var ctx2 = canvas2.getContext('2d');
// 在canvas2上绘制图形
ctx2.fillStyle = 'red';
ctx2.fillRect(50, 50, 100, 100);
```
这样,canvas2就会覆盖在canvas1上面,并且可以看到在canvas2上绘制的图形。
完整的示例代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>Canvas Layering</title>
<style>
canvas {
position: absolute;
top: 0;
left: 0;
}
#canvas1 {
z-index: 1;
}
#canvas2 {
z-index: 2;
}
</style>
</head>
<body>
<canvas id="canvas1" width="400" height="400"></canvas>
<canvas id="canvas2" width="400" height="400"></canvas>
<script>
var canvas1 = document.getElementById('canvas1');
var canvas2 = document.getElementById('canvas2');
var ctx2 = canvas2.getContext('2d');
// 在canvas2上绘制图形
ctx2.fillStyle = 'red';
ctx2.fillRect(50, 50, 100, 100);
</script>
</body>
</html>
```