【css酷炫效果】纯CSS实现粒子旋转动画
- 缘
- 创作背景
- html结构
- css样式
- 完整代码
- 效果图
想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90492008
缘
创作随缘,不定时更新。
创作背景
刚看到csdn出活动了,赶时间,直接上代码。
html结构
<div id="particle-container" class='particle-container'></div>
css样式
/* 基本样式重置 */
body, html {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
overflow: hidden; /* 防止滚动条出现 */
background-color: #000; /* 设置背景颜色为黑色 */
}
/* 粒子容器 */
.particle-container {
position: relative;
width: 100%;
height: 100%;
pointer-events: none; /* 使容器内的粒子不影响鼠标事件 */
}
/* 粒子样式 */
.particle-container::before,
.particle-container::after,
.particle {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 2px;
height: 2px;
background-color: rgba(255, 255, 255, 0.8); /* 设置粒子颜色为白色,带有一定的透明度 */
border-radius: 50%;
box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); /* 添加一些模糊效果 */
animation: particleAnimation 5s infinite ease-in-out;
pointer-events: none;
}
/* 使用伪元素生成一些粒子 */
.particle-container::before,
.particle-container::after {
width: 4px;
height: 4px;
}
/* 使用大量类生成更多粒子 */
.particle:nth-child(1) { top: 5%; left: 10%; animation-delay: 0s; }
.particle:nth-child(2) { top: 15%; left: 20%; animation-delay: 0.2s; }
.particle:nth-child(3) { top: 25%; left: 30%; animation-delay: 0.4s; }
/* 粒子动画关键帧 */
@keyframes particleAnimation {
0% {
transform: translate(-50%, -50%) rotate(0deg);
opacity: 1;
}
100% {
transform: translate(-50%, -50%) rotate(360deg) translate(200px, -200px);
opacity: 0;
}
}
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<title>页面特效</title>
<style type="text/css">
/* 基本样式重置 */
body, html {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
overflow: hidden; /* 防止滚动条出现 */
background-color: #000; /* 设置背景颜色为黑色 */
}
/* 粒子容器 */
.particle-container {
position: relative;
width: 100%;
height: 100%;
pointer-events: none; /* 使容器内的粒子不影响鼠标事件 */
}
/* 粒子样式 */
.particle-container::before,
.particle-container::after,
.particle {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 2px;
height: 2px;
background-color: rgba(255, 255, 255, 0.8); /* 设置粒子颜色为白色,带有一定的透明度 */
border-radius: 50%;
box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); /* 添加一些模糊效果 */
animation: particleAnimation 5s infinite ease-in-out;
pointer-events: none;
}
@keyframes particleAnimation {
0% {
transform: translate(-50%, -50%) rotate(0deg);
opacity: 1;
}
100% {
transform: translate(-50%, -50%) rotate(360deg) translate(200px, -200px);
opacity: 0;
}
}
</style>
</head>
<body>
<h1 style='color:red;'>斗破苍穹!</h1>
<div id="particle-container" class='particle-container'></div>
</body>
<script>
const container = document.getElementById('particle-container');
const numberOfParticles = 100;
setInterval(function(){
for (let i = 0; i < numberOfParticles; i++) {
const particle = document.createElement('div');
particle.classList.add('particle');
particle.style.top = Math.random() * 95+ 'vh';
particle.style.left = Math.random() * 95+ 'vw';
particle.style.animationDelay = Math.random() * 5 * 0.4+`s`;
particle.style.width = (Math.floor(Math.random() * 4) + 1)+`px`;
particle.style.height = Math.floor(Math.random() * 4) + 1+`px`;
container.appendChild(particle);
}
},3000);
</script>
</html>