当前位置:网站首页>超美星空特效,你Get了吗?
超美星空特效,你Get了吗?
2022-08-04 11:13:00 【是乃德也是Ned】
前言
最近真是越来越对CSS感兴趣了,于是再来整一手,夜晚的星星,再配合上皎洁的月光,这唯美的星空,它来了!
今天带领大家,用CSS实现一下,这美丽的星空。
开始实现星空
我是找了张图片,这毕竟功力有限,目前还不能人造星~,下面说一下如何将它放置在夜空中,并实现眨眼睛的效果:
运用了一个span
标签,将此图片作为其背景图,来生成星星:
var screenW = document.documentElement.clientWidth;
var screenH = document.documentElement.clientHeight;
for(var i=0; i<150; i++){
var span = document.createElement('span');
document.body.appendChild(span);
var x = parseInt(Math.random() * screenW);
var y = parseInt(Math.random() * screenH);
span.style.left = x + 'px';
span.style.top = y + 'px';
span.style.zIndex = "0";
var scale = Math.random() * 1.5;
span.style.transform = 'scale('+ scale + ', ' + scale + ')';
}
先获取屏幕宽高,完后用上随机数使得星星的位置随机,大小随机,频率随机。
image.png
会眨眼睛的才是好星星
星星还要是一眨一眨的,才好看,所以我们给它加上一个动画,更改其的透明度就好:
@keyframes flash {
0%{opacity: 0;}
100%{opacity: 1;}
}
但是我们很快发现一个问题,就是它太过于整齐划一:
我们在生成星星的时候,给它每一个的延迟频率随机一下,这样就能保证它们有一种参差错落的感觉。
var rate = Math.random() * 1.5;
span.style.animationDelay = rate + 's';
现在来看看我们美丽的星空吧~:
星空.gif
最后再给星星加一个hover
效果,将其放大一点,完后旋转个180
span:hover{
transform: scale(3, 3) rotate(180deg) !important;
transition: all 1s;
}
hover.gif
开始实现月亮
一个美丽的夜晚,天空中除了星星,应当还有月亮:月亮主要是两个动画,一个是从左下往右上移动,达到一个月亮升起
的效果,另一个是随着升起,月亮周围的光辉变得越来越亮眼。
做法:将月亮放到一个容器中,用容器来做移动的特效,月亮本身只关注光辉就好。
<div id="wrapper">
<div id="circle"></div>
</div>
#wrapper {
position:absolute;
top:50px;
left:80%;
width:200px;
height:200px;
margin-left:-100px;
animation: moonline 5s linear;
}
@-webkit-keyframes moonline {
0% {top:250px;left:0%;opacity:0;}
30% {top:150px;left:40%;opacity:0.5;}
80% {top:50px;left:80%;opacity:1;}
}
#circle {
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 200px;
background-color: #EFEFEF;
box-shadow:0 0 40px #FFFFFF;
border-radius: 100px;
animation:moonlight 5s linear;
}
@-webkit-keyframes moonlight {
0% {-webkit-box-shadow:0 0 10px #FFFFFF;}
30% {-webkit-box-shadow:0 0 15px #FFFFFF;}
40% {-webkit-box-shadow:0 0 20px #FFFFFF;}
50% {-webkit-box-shadow:0 0 25px #FFFFFF;}
100% {-webkit-box-shadow:0 0 30px #FFFFFF;}
}
看一下最终效果:
月亮升起.gif
写在最后
我是Ned
,一个前端学习者,希望可以同大家一起学习进步,一起加油~
你可以在掘金找到我:Ned
也可以前往我的个人博客:blog.wangez.site
可以来交换友链哟~
边栏推荐
猜你喜欢
Use pytest hook function to realize automatic test result push enterprise WeChat
复盘:经典的HR面试问题,这些问题可以挖掘你个人的素质,看看你是否合适合我们部门
Using .NET to simply implement a high-performance clone of Redis (2)
Jenkins使用手册(1) —— 软件安装
萌宠来袭,如何让“吸猫撸狗”更有保障?
解析treeSet集合进行自定义类的排序
【LeetCode】701.二叉搜索树中的插入操作
Advanced transcriptome analysis and R data visualization hot registration (2022.10)
Maple 2022 software installation package download and installation tutorial
在 .NET MAUI 中如何更好地自定义控件
随机推荐
WPF 截图控件之画笔(八)「仿微信」
Leetcode刷题——路径总和
vscode插件设置——Golang开发环境配置
剑指长城炮? 长安全新皮卡官方谍照
命令模式(Command)
图文手把手教程--ESP32 OTA空中升级(VSCODE+IDF)
Zikko上市同时搭载HDMI2.1和2.5GbE新款雷电4扩展坞
MySQL 45 讲 | 11 怎么给字符串字段加索引?
[Hongke case] Assembling furniture based on 3D camera
AWS Lambda related concepts and implementation approach
Maple 2022 software installation package download and installation tutorial
Digital management insight into retail and e-commerce operations - retail password
【Inspirational】The importance of review
Oracle中对临时表空间执行shrink操作
C language * Xiaobai's adventure
【LeetCode】1403.非递增顺序的最小子序列
北京大学,新迎3位副校长!其中一人为中科院院士!
The use of DDR3 (Naive) in Xilinx VIVADO (3) simulation test
Four ways to traverse a Map
复盘:经典的HR面试问题,这些问题可以挖掘你个人的素质,看看你是否合适合我们部门