html+js+css 实现满天星

馋奶兔 提交于 2019-11-27 11:11:43
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>满天星</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }

        html,body {
            width: 100%;
            height: 100%;
            background-color: black;
            position: relative;
        }
        .star-animation {
            position: relative;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            overflow: hidden;
        }

        /*动画设计*/
        @-webkit-keyframes identifier {
            25% {
                transform: scale(1.5);
            }
            50% {
                transform: scale(2);
            }
            75% {
                transform: scale(1.5);
            }
            100% {
                transform: scale(1);
            }

        }

        @-o-keyframes identifier {
            25% {
                transform: scale(1.5);
            }
            50% {
                transform: scale(2);
            }
            75% {
                transform: scale(1.5);
            }
            100% {
                transform: scale(1);
            }

        }

        @-moz-keyframes identifier {
            25% {
                transform: scale(1.5);
            }
            50% {
                transform: scale(2);
            }
            75% {
                transform: scale(1.5);
            }
            100% {
                transform: scale(1);
            }

        }

        @keyframes identifier {
            25% {
                transform: scale(1.5);
            }
            50% {
                transform: scale(2);
            }
            75% {
                transform: scale(1.5);
            }
            100% {
                transform: scale(1);
            }

        }
    </style>
</head>
<body>
<div></div>
<div class="star-animation"></div>
</body>
<script src="js/star-animation.js"></script>
<script>
    // 自调用函数,在加载该文件时就开始工作
    (function(container) {
        for (var i = 0; i < 300; i++) {
            container.append(starFactory());
        }
    })(document.getElementsByClassName("star-animation")[0]);

    // 创建星星的一个工厂函数
    function starFactory() {
        let star = document.createElement("div");
        let width = Math.ceil(Math.random()*5);
        star.style.position = "absolute";
        star.style.width = width + 'px';
        star.style.height = width + 'px';
        star.style.backgroundColor = '#909090';
        star.style.top = Math.ceil(Math.random()*window.innerHeight) + 'px';
        star.style.left = Math.ceil(Math.random()*window.innerWidth) + 'px';
        star.style.boxShadow = "#545454 0 0 "+Math.ceil(Math.random()*5)+"px"+Math.ceil(Math.random()*5)+" 5px";
        star.style.borderRadius = width + 'px';

        // 当星星直径小于3时,有一个放大缩小的动画
        if (width < 3) {
            star.style.animation = "identifier 2000ms infinite 500ms";
        }
        return star;
    }

</script>
</html>
View Code

效果:

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!