演示

原理

使用JS动态创建块元素作为粒子,动态设置其位置、大小、颜色等属性,动态设置每个粒子的动画。

代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"><title>粒子飘落效果动画背景</title><style>* {padding: 0;margin: 0;user-select: none;box-sizing: border-box;}html,body {height: 100vh;}</style><style>.bg {width: 100vw;height: 100vh;background: radial-gradient(#003010, #000000);overflow: hidden;position: relative;}.bg>div {position: absolute;border-radius: 50%;}</style>
</head><body><div class="bg"><!-- 内层div元素作为粒子(particle)<div></div><div></div>... --></div><script>const PARTICLE_SUM = 32; // 粒子总数量const bg = document.querySelector(".bg");const particle_style = document.createElement('style');document.head.appendChild(particle_style);for (let i = 0; i < PARTICLE_SUM; i++) {// 创建粒子particle = document.createElement("div");// 下面设置粒子属性let size = Math.random() * 4;particle_style.sheet.insertRule(`.bg>div:nth-child(${i + 1}) {top: ${Math.random() * 100}vh;left: ${Math.random() * 100}vw;width: ${size + 2}vh;height: ${size + 2}vh;background: rgba(${Math.random() * 255}, ${Math.random() * 255}, ${Math.random() * 255}, ${Math.random()});box-Shadow: 0 0 ${Math.random() * 6}vh rgba(${Math.random() * 255}, ${Math.random() * 255}, ${Math.random() * 255}, ${Math.random()});opacity: 0;animation: anime${i} 8s linear ${Math.random() * 8}s infinite;}`);// 下面生成帧动画let xoffsetbase = Math.random() * 5;let yoffsetbase = Math.random() * 5 + 10;particle_style.sheet.insertRule(`@keyframes anime${i} {0% { opacity: 0; translate: calc(${xoffsetbase - 2.5}vw) calc(${-yoffsetbase}vh); }25% { opacity: 1; }50% { opacity: 0; translate: 0 0; }75% { opacity: 1; }100% { opacity: 0; translate: calc(${xoffsetbase + 2.5}vw) calc(${yoffsetbase}vh); }}`);// 将粒子插入到背景bg.appendChild(particle);}</script>
</body></html>

更多例程

更多例程可以参考下面代码仓库:
https://github.com/NaisuXu/front-end-web-examples

前端例程20220913:粒子飘落效果动画背景相关推荐

  1. html canvas粒子线条组合动画背景特效

    代码如下: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF- ...

  2. 前端canvas粒子动画背景(带鼠标跟随和点击散开)

    目录 闲聊 看下效果 先贴下代码吧 大概说一下流程 下面让我来详细说一下 1.初始化基础属性 2.添加鼠标移动事件并实时更新鼠标坐标 3.通过随机数生成粒子的坐标和横纵轴速度 4.渲染粒子并将粒子对象 ...

  3. python随风飘落怎么画_树叶飘落动画制作 如何制作树叶飘落的动画?视频画面添加树叶随风飘落的动画效果...

    最近真是有一点秋的凉意了呢~每天早上起床走出房间的时候,就能感觉到有点凉凉的气息,真好,酷暑终于过去了,希望不要再炎热了,啊哈哈.对于秋天,相信大家先想到的就是那种漫天的落叶了吧~那种秋风阵阵,落叶缤 ...

  4. Android之高仿QQ6.6.0侧滑效果(背景动画、透明+沉浸式状态栏、渐变效果)

    根据需求实现类似QQ侧滑效果,之前看到过很多实现方式通过SlidingMenu,但是既然官方推出了自己的专属控件,那么使用DrawerLayout就是不二选择.且看下文. 一.先来看看官方文档解释 D ...

  5. 【前端实例代码】霓虹灯按钮动画效果悬停2| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程

    b站视频演示效果: [web前端特效源码]霓虹灯按钮动画效果悬停2| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程 效果图: 完整代码: <!DOCTYPE html> ...

  6. 【前端实例代码】霓虹灯按钮动画效果悬停| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程

    b站视频演示效果: [web前端特效源码]霓虹灯按钮动画效果悬停| html CSS特效 惊艳| 前端开发 网页制作 基础入门教程 效果图: 完整代码: <!DOCTYPE html> & ...

  7. android 缩放透明动画,Android之高仿QQ6.6.0侧滑效果(背景动画、透明+沉浸式状态栏、渐变效果)...

    根据需求实现类似QQ侧滑效果,之前看到过很多实现方式通过SlidingMenu,但是既然官方推出了自己的专属控件,那么使用DrawerLayout就是不二选择.且看下文. 一.先来看看官方文档解释 D ...

  8. [前端css-3] 实现图片卷帘效果,以及动画

    [前端css-3] 实现图片卷帘效果,以及动画 1.效果展示: 效果预览 2.知识点: 1.position(相对定位/绝对定位)2.伪类(:after/:before)3.animation(动画) ...

  9. canvas实现粒子跟随鼠标动画

    canvas实现粒子跟随鼠标动画 canvas是前端绘制图形的好帮手,不少大牛的博客也会精心的用canvas绘制炫酷的背景.图形与可视化界面就是前端最好的名片,泡妞之前尚且知道要梳个靓头精心打扮,而c ...

最新文章

  1. GNN教程:DGL框架中的采样模型!
  2. mysql-mybatis 8.0版本配置====解决could not create connection to database server.
  3. android----HttpClient的get,post和图片上传服务器
  4. go的异常处理,defer,panic,recover
  5. proxy负载均衡、读写分离
  6. [转载] --- 让线程按顺序执行8种方法
  7. 10W阅读,万人点赞,这套大数据平台建设方法论,到底有什么干货
  8. xposed hook 静态函数_开源Hook框架-epic-实现浅析
  9. 《Spring攻略(第2版)》——1.5 指定Bean引用
  10. 3dmax中为人物添加动作的流程
  11. 如何解决js地址栏中传递中文乱码的问题
  12. Arduino学习笔记14
  13. 《嵌入式C语言自我修养》书评
  14. php 七牛云 视频加水印
  15. 月销13485台的理想ONE,到底做对了哪些事儿?
  16. qt实现拓扑图_基于QT的PLC梯形图编辑系统设计与实现
  17. ruoyi第三方登入Gitee
  18. Java break outer和continue outer的用法
  19. auto.js制作简易音乐app(二)
  20. linux yum安装iscsi,CentOS 安装配置iscsi共享存储

热门文章

  1. java关于NEC的红外解码_红外协议之NEC协议
  2. 知乎热议话题:国内卷了!欧洲为什么能突破内卷?
  3. PHP应该学什么技术,如何学好PHP?
  4. 儿童体重测试软件,儿童生长发育测评系统
  5. 金和oa:自定义表单自动获取当前系统用户名函数
  6. [git] 小乌龟工具TortoiseGit记住账号密码 ——简单版操作指南
  7. 小i智慧学堂复旦开讲人工智能时代运营管理创新
  8. Springboot在线考试管理系统
  9. 关于这次安装Oracle
  10. MATLAB 制作一个圆的模板