老师这里如何复制到第一块canva上

来源:9-3 完成案例动画部分

Golden几何

2021-09-21 22:53:52

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <title></title>

    <style type="text/css">

        canvas{

            background: #000;

        }

    </style>

</head>


<body>

    <canvas id="myCanvas"></canvas>

    <canvas id="offCanvas"></canvas>

    <script>

        var canvas=document.getElementById('myCanvas');

        var canvas2=document.getElementById('offCanvas');

        var ctx=canvas.getContext('2d');

        var ctx2=canvas2.getContext('2d');

        ctx.canvas.width=600;

        ctx.canvas.height=100;

        ctx2.canvas.width=600;

        ctx2.canvas.height=100;

        var circles=[];


        setInterval(function(){

            ctx2.clearRect(0,0,ctx2.canvas.width,ctx2.canvas.height);

            ctx.drawImage(canvas2,0,0,ctx2.canvas.width,ctx2.canvas.height,0,0,ctx.canvas.width,ctx.canvas.height);

            for(var i=0;i<10;i++){

                if(!circles[i]){

                    circles[i]={};

                    circles[i].radius=Math.floor(Math.random()*5)+1;

                    circles[i].x=i*60+Math.floor(Math.random()*10)-5;

                    circles[i].y=-circles[i].radius-Math.floor(Math.random()*10);

                    circles[i].vy=Math.floor(Math.random()*5)+1;

                }


                ctx2.beginPath();

                ctx2.fillStyle='rgba(255,255,255,0.5)';

                ctx2.arc(circles[i].x,circles[i].y,circles[i].radius,0,2*Math.PI,true);

                ctx2.fill()

                circles[i].y+=circles[i].vy;

                if(circles[i].y>circles[i].radius+ctx2.canvas.height){

                    circles[i]=undefined;

                }

            }

        },100);

    </script>

</body>

</html>


写回答

1回答

好帮手慕星星

2021-09-22

同学你好,第二个canvas绘制完后再离屏,否则就是黑色的,没有圆圈。如下:

https://img.mukewang.com/climg/614ac469095d396410920461.jpg

记得也清除第一个canvas,否则在定时器中离屏会叠加,效果不对。

自己再测试下,祝学习愉快!

0
holden几何
hp>好的,谢谢~

h021-09-22
共1条回复

0 学习 · 6815 问题

查看课程