当前位置: 首页 > news >正文

【css酷炫效果】纯CSS实现全屏粒子连线

【css酷炫效果】纯CSS实现全屏粒子连线

  • 创作背景
  • html结构
  • css样式
  • 完整代码
  • 效果图

想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90492027

创作随缘,不定时更新。

创作背景

刚看到csdn出活动了,赶时间,直接上代码。

html结构

  <div class="particle-universe">
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
  </div>

css样式

:root {
  --particle-size: 30px;
  --glow-color: #4affde;
}

body {
  margin: 0;
  min-height: 100vh;
  background: radial-gradient(circle, #001122 0%, #000 100%);
}

.particle-universe {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--particle-size), 1fr));
  gap: 2px;
  width: 100vw;
  height: 100vh;
  padding: 10px;
  filter: contrast(120%);
}

.particle {
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  transition: 
    transform 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55),
    background 0.4s,
    box-shadow 0.3s;
  aspect-ratio: 1;
  position: relative;
  cursor: pointer;
}

/* 粒子激活态 */
.particle:hover {
  background: var(--glow-color);
  box-shadow: 0 0 20px var(--glow-color);
  transform: scale(1.8);
}

/* 连接线生成 */
.particle:hover::before,
.particle:hover ~ .particle::after {
  content: '';
  position: absolute;
  background: linear-gradient(
    to right,
    transparent 20%,
    var(--glow-color) 50%,
    transparent 80%
  );
  animation: energy-flow 1.5s linear infinite;
}

/* 当前粒子光环 */
.particle:hover::before {
  inset: -5px;
  filter: blur(5px);
}

/* 相邻粒子连接线 */
.particle:hover ~ .particle::after {
  inset: -0.1px -11px;
  background-size: 200% 100%;
  mask: linear-gradient(90deg, #000 40%, transparent 60%);
}

@keyframes energy-flow {
  from { background-position: -200% 0; }
  to { background-position: 200% 0; }
}


.particle:nth-child(odd) { animation: float 4s ease-in-out infinite; }
.particle:nth-child(even) { animation: float 5s ease-in-out infinite reverse; }

/* 随机移动动画 */
@keyframes float {
  0%, 100% { transform: translate(0,0); }
  25% { transform: translate(2px,-3px); }
  50% { transform: translate(-1px,4px); }
  75% { transform: translate(3px,1px); }
}

完整代码

<!DOCTYPE html>
<html>
<head>
<style>
:root {
  --particle-size: 30px;
  --glow-color: #4affde;
}

body {
  margin: 0;
  min-height: 100vh;
  background: radial-gradient(circle, #001122 0%, #000 100%);
}

.particle-universe {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--particle-size), 1fr));
  gap: 2px;
  width: 100vw;
  height: 100vh;
  padding: 10px;
  filter: contrast(120%);
}

.particle {
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  transition: 
    transform 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55),
    background 0.4s,
    box-shadow 0.3s;
  aspect-ratio: 1;
  position: relative;
  cursor: pointer;
}

/* 粒子激活态 */
.particle:hover {
  background: var(--glow-color);
  box-shadow: 0 0 20px var(--glow-color);
  transform: scale(1.8);
}

/* 连接线生成 */
.particle:hover::before,
.particle:hover ~ .particle::after {
  content: '';
  position: absolute;
  background: linear-gradient(
    to right,
    transparent 20%,
    var(--glow-color) 50%,
    transparent 80%
  );
  animation: energy-flow 1.5s linear infinite;
}

/* 当前粒子光环 */
.particle:hover::before {
  inset: -5px;
  filter: blur(5px);
}

/* 相邻粒子连接线 */
.particle:hover ~ .particle::after {
  inset: -0.1px -11px;
  background-size: 200% 100%;
  mask: linear-gradient(90deg, #000 40%, transparent 60%);
}

@keyframes energy-flow {
  from { background-position: -200% 0; }
  to { background-position: 200% 0; }
}


.particle:nth-child(odd) { animation: float 4s ease-in-out infinite; }
.particle:nth-child(even) { animation: float 5s ease-in-out infinite reverse; }

/* 随机移动动画 */
@keyframes float {
  0%, 100% { transform: translate(0,0); }
  25% { transform: translate(2px,-3px); }
  50% { transform: translate(-1px,4px); }
  75% { transform: translate(3px,1px); }
}
</style>
</head>
<body>
  <div class="particle-universe">
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
    <div class="particle"></div>
  </div>
</body>
</html>

效果图

在这里插入图片描述

相关文章:

  • sparksql的Transformation与 Action操作
  • 解决git init 命令不显示.git
  • 3.1 在VisionPro脚本中添加CogGraphicLabel
  • LeetCode 热题 100_跳跃游戏(78_55_中等_C++)(贪心算法)
  • 技术路线图ppt模板_流程图ppt图表_PPT架构图
  • 购物车全选功能
  • Api架构设计--- HTTP + RESTful
  • C++和标准库速成(八)——指针、动态数组、const、constexpr和consteval
  • dataframe数据形式操作中的diff和shift函数区别与对比
  • 自交互学习:计算病理学中用于分子特征预测的多尺度组织形态学特征的融合与演化|文献速递-医学影像人工智能进展
  • 3.git操作:git init说明
  • macOS 安装 LibreOffice
  • QPS和TPS 的区别是什么?QPS 大了会有什么问题,怎么解决?
  • 数据库设计实验(4)—— 数据更新实验
  • MySQL数据高效同步到Elasticsearch的四大方案
  • 记一次ElasticSearch参数调优
  • c语言笔记 字串串函数---strcat,strncat,strcpy,strncpy
  • 【上市公司文本分析】Python+Pytorch微调BERT预训练模型,使用大语言模型完成文本分类任务——金星晔等(2024)《经济研究》大语言模型方法的复现
  • 基于大语言模型与知识图谱的智能论文生成工具开发构想
  • STM32学习【5】用按键控制LED亮灭(寄存器)以及对位运算的思考
  • 生命与大海相连:他在300多米的深海行走,在沉船一线打捞救援
  • 韩国法院将重审李在明案,韩德洙入局能否为大选带来变数?
  • 新华保险一季度净赚58.82亿增19%,保费收入增28%
  • 现场|西岸美术馆与蓬皮杜启动新五年合作,新展今开幕
  • 党旗下的青春|83岁仍在“下生活”,他说生活是创作的源泉
  • 新加坡选情渐热:播客、短视频各显神通,总理反对身份政治