首页 > 其他 > 详细

canvas 雪花背景

时间:2020-05-29 14:13:35      阅读:35      评论:0      收藏:0      [点我收藏+]
技术分享图片
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <title></title>
        <style type="text/css">
            * {margin: 0;padding: 0;}
            html, body {height: 100%;overflow: hidden;}
        </style>
    </head>
    <body>
        <canvas></canvas>
    </body>
    <script type="text/javascript">
        window.onload = function() {
            var oc = document.querySelector("canvas");
            oc.width = document.documentElement.clientWidth;
            oc.height = document.documentElement.clientHeight;
            
            if (oc.getContext) {
                var ctx = oc.getContext(2d);
                var arr = [];

                setInterval(() => {
                    var x = Math.random() * oc.width;
                    
                    arr.push({
                        x,
                        y: 0,
                        r: Math.round(Math.random() * 5 + 1),
                        deg: 0,
                        step: Math.random()*10
                    });
                }, 100);
                
                setInterval(() => {
                    ctx.clearRect(0, 0, oc.width, oc.height);
                    
                    ctx.fillStyle = "black";
                    ctx.fillRect(0, 0, oc.width, oc.height);
                    
                    for (let i = 0; i < arr.length; i++) {
                        if (arr[i].y >= oc.height) {
                            arr.splice(i, 1);
                        }
                        
                        arr[i].deg += 5;
                        
                        arr[i].y += 2;
                        arr[i].x += 2 * Math.sin(arr[i].deg * Math.PI / 180);
                    }
                    
                    for (let i = 0; i < arr.length; i++) {
                        ctx.save();
                        ctx.fillStyle = "#FFFFFF";
                        const {x, y, r} = arr[i];
                        ctx.beginPath();
                        ctx.arc(x, y, r, 0, 2 * Math.PI);
                        ctx.fill();
                        ctx.restore();
                    }
                }, 1000 / 60);
            }
        }
    </script>
</html>
View Code

技术分享图片

canvas 雪花背景

原文:https://www.cnblogs.com/qiuxd/p/12986961.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!