使用原生JS与CSS3实现动态星空背景效果

作者:拾光

时间:2026-10-23

浏览:89

本文详细介绍如何利用原生JavaScript结合CSS3动画属性,快速实现一个具有纵深感且动态飞行的星空背景效果。通过生成随机坐标与颜色,利用boxShadow绘制大量星点,并配合关键帧动画营造视觉冲击。

文章目录

JS与CSS3实现动态星空背景教程

本文分享了一段使用JavaScript实现精美星空背景的具体代码示例,供读者参考学习。

HTML结构部分代码如下:


<div class="stars"></div>

CSS样式设置如下:


 html, body {
 height: 100%;
 overflow: hidden;
 }

 body {
 width: 100%;
 height:100%;
 background: #000;
 background-size: 100%;
 perspective: 500px;

 }
 .stars {
 position: absolute;
 top: 50%;
 left: 50%;
 width: 4px;
 height:4px;
 -webkit-border-radius:50%;
 -moz-border-radius:50%;
 border-radius:50%;
 animation: fly 2s linear infinite;
 transform-style: preserve-3d;
 }
 .stars:before, .stars:after {
 content: "";
 position: absolute;
 width: inherit;
 height: inherit;
 box-shadow: inherit;
 }
 .stars:before {
 transform: translateZ(-300px);
 opacity: .6;
 }
 .stars:after {
 transform: translateZ(-600px);
 opacity: .4;
 }

 @keyframes fly {
 from {
 transform: translateZ(0px);
 opacity: .6;
 }
 to {
 transform: translateZ(300px);
 opacity: 1;
 }
 }

JavaScript逻辑代码如下:


var w = document.documentElement.clientWidth*1.2;
var h = document.documentElement.clientHeight*1.2;
var star = document.getElementsByClassName("stars")[0];
var n = 1000;
 //随机函数
 function randomNum(m, n) {
 return Math.floor(Math.random() * (n - m + 1) + m);
 }
 var str = '';
 for (var i = 0; i < n; i++) {
 var numX = randomNum(-w, w);
 var numY = randomNum(-h, h);
 var color = 'rgb(' + randomNum(0, 255) + ',' + randomNum(0, 255) + ',' + randomNum(0, 255) + ')';
 str += numX +'px'+' ' + numY+'px'+' '+ color+',';
 }
 str = str.slice(0,-1);
 star.style.boxShadow = str;


  $(function(){

   $('#main').fadeOut();

   $('#main').fadeIn('slow');

 })

以上即为本文的全部内容,希望这段代码能对各位的学习有所帮助,同时也欢迎大家继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章