老师如何能控制眼和脑袋的层级关系,比如想放脑袋下面

来源:3-11 编程练习

陈立天

2020-08-18 09:25:30

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>canvas</title>

    <style>

        canvas{background-color:lightblue;}

    </style>

</head>

<body>

    <canvas id="canvas" width="800" height="800">

        您的浏览器不支持canvas

    </canvas>

    

    <script>

//在此处写出代码

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

    var ctx = mycanvas.getContext("2d");
    ctx.save();
    ctx.fillStyle = '#FFB5C5'
    ctx.fillRect(250,150,300,150);//头部

    ctx.stroke();
    ctx.restore();
    
    ctx.save();
    ctx.beginPath();
    ctx.fillStyle = 'yellow';
    ctx.fillRect(225,175,25,75);//左耳朵

    

    ctx.beginPath();

    ctx.fillRect(550,175,25,75);//右耳朵
    ctx.restore();
    
    ctx.save()
    ctx.beginPath();
    ctx.fillStyle = 'red';
    ctx.fillRect(350,260,100,25);//嘴巴
    ctx.restore();
    
    ctx.save();
    ctx.beginPath();
    ctx.fillStyle = 'pink';
    ctx.fillRect(300,300,200,250);//身体
    ctx.restore();
    
    ctx.save();
    ctx.beginPath();
    ctx.fillStyle = 'blue';
    ctx.fillRect(50,375,250,25);//左臂

    

    ctx.beginPath();

    ctx.fillRect(500,375,250,25);//右臂

    

    ctx.beginPath();

    ctx.fillRect(350,550,25,200);//左腿

    

    ctx.beginPath();

    ctx.fillRect(420,550,25,200);//右腿
    ctx.restore();
    
ctx.save()
    ctx.beginPath();

    ctx.moveTo(350,150);

    ctx.lineTo(250,50);//左天线
ctx.strokeStyle ='orange'
ctx.lineWidth = '4'
    ctx.stroke();

    
    
    ctx.beginPath();

    ctx.moveTo(450,150);

    ctx.lineTo(550,50);//右天线
    
    ctx.fill();
    ctx.stroke();
    ctx.restore();
    

    ctx.beginPath();
    ctx.save();
    ctx.arc(320,207.5,15,0,2*Math.PI,true);//左眼球
    ctx.fillStyle = 'black';
    ctx.fill();
    
    

    ctx.beginPath();

    ctx.arc(480,207.5,15,0,2*Math.PI,true);//右眼球
    ctx.fill();
    ctx.restore()
    

	</script>

</body>



</html>


写回答

1回答

好帮手慕久久

2020-08-18

同学你好,canvas绘图时,无法通过样式,比如z-index等来控制图层级,只能通过调整代码的顺序来改变层级。比如,先写绘制脑袋的代码,再写绘制眼睛的代码,那么眼睛就会在脑袋上面,反之先画眼睛再画脑袋,会让脑袋覆盖在眼睛上,这和现象中的画画很像,后画的内容会覆盖先画的内容。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

0

0 学习 · 6815 问题

查看课程