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

让网页“浪“起来:打造会呼吸的波浪背景

每次打开那些让人眼前一亮的网页时,你是否有注意到那些看似随波逐流的动态背景?今天咱们不聊高深的技术,就用最朴素的CSS,来解锁这个让页面瞬间鲜活的秘籍。无需JavaScript,不用复杂框架,准备好一杯咖啡,跟我一起玩转这个"会呼吸"的波浪特效吧!


一、起浪:搭建舞台

想象我们正在创作一幅动态海景画。先准备两个"浪层"容器,就像油画要先打底稿:

<div class="wave wave-front"></div>  <!-- 前浪 -->
<div class="wave wave-back"></div>   <!-- 后浪 -->

这里故意用了语义化的类名,让代码像诗一样可读。前浪在上层活泼跳跃,后浪在深处悠然涌动,就像真实的潮汐层次。


二、造浪:魔法样式

重点来了!咱们用CSS施展"流体魔法":

.wave {position: absolute;bottom: 0;left: 0;background-repeat: repeat-x;  /* 让波浪图案无限续杯 */animation: surf 120s linear infinite;
}.wave-front {height: 84px;width: 200%;          /* 超宽画布让移动更流畅 */background-image: url(波浪1.png);z-index: 10;          /* 浮在最上层 */filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.2)); /* 增加立体感 */
}.wave-back {height: 100px;width: 400%;          /* 更宽的画布制造速度差 */background-image: url(波浪2.png);z-index: 5;opacity: 0.8;         /* 半透明让层次更分明 */
}

这里藏着几个小心机:前浪用drop-shadow滤镜营造立体感,后浪降低透明度制造景深效果。两层的不同宽度设置(200% vs 400%)会在动画中形成速度差异,就像现实中近处的浪跑得快,远处的浪动得慢。


三、动起来:呼吸的节奏

关键帧动画是让波浪"活过来"的灵魂:

@keyframes surf {0% { background-position: 0 50%; }   /* 起始点 */50% { background-position: 100% 50%; } /* 浪推到最右 */100% { background-position: 0 50%; }  /* 优雅地回到原点 */
}

这个动画就像指挥家的手势:让背景图像从左侧出发,慢慢滑向右侧,再悄无声息地回到起点,整个过程如丝绸般顺滑。你可能会好奇为什么要用百分比单位?这是为了适配不同屏幕尺寸,让波浪在任何设备上都保持自然流动。


四、让浪花说话:设计小心机
  • 速度差玄机:虽然两层的动画时长都是120s,但前浪画布宽度是200%,后浪是400%,实际移动速度相差一倍,这种错位感会形成真实的立体波动

  • 无限续杯技巧background-repeat: repeat-x让波浪图案无缝拼接,就像永不停歇的海浪

  • 性能秘诀:使用linear线性动画而非默认的ease效果,确保在低配设备上也能丝滑运行

  • 彩蛋时间:试试给后浪加上animation-delay: -30s;,会出现意想不到的波浪交错效果!


五、应用现场:让创意冲浪

上周我给一个海洋保护组织的官网加上这个效果,配合深蓝色渐变背景,访问者说仿佛能听见浪花声。你还可以:

  1. 节日营销:把波浪改成红包图案,做成春节倒计时背景
  2. 产品发布:用流动的科技线条做智能手表官网的底纹
  3. 文艺小站:把咖啡馆网站的背景做成咖啡涟漪的动态效果

记得去年有个客户要求在波浪里藏浮动的小鱼,用CSS的鱼群动画叠加,效果出奇地生动!


六、避坑指南

遇到波浪卡顿?检查这些:

  1. 图片是否过大(建议单张波浪图控制在50KB内)
  2. 是否忘记设置position: absolute导致布局错乱
  3. 移动端记得加-webkit-前缀保证兼容

相关文章:

让网页“浪“起来:打造会呼吸的波浪背景

每次打开那些让人眼前一亮的网页时&#xff0c;你是否有注意到那些看似随波逐流的动态背景&#xff1f;今天咱们不聊高深的技术&#xff0c;就用最朴素的CSS&#xff0c;来解锁这个让页面瞬间鲜活的秘籍。无需JavaScript&#xff0c;不用复杂框架&#xff0c;准备好一杯咖啡&am…...

YOLO11的单独推理程序

YOLO11的单独推理程序,可以实例化加载一次多次推理。 YOLO11的单独推理程序,可以实例化加载一次多次推理。 YOLO11的单独推理程序,可以实例化加载一次多次推理。 YOLO11的单独推理程序,可以实例化加载一次多次推理。 YOLO11的单独推理程序,可以实例化加载一次多次推理…...

代码随想录day21

669.修剪二叉搜索树 //理解修建后重建树的概念 TreeNode* trimBST(TreeNode* root, int low, int high) {if(root nullptr) return nullptr;if(root->val < low){TreeNode* node trimBST(root->right, low, high);return node;}if(root->val > high){TreeNod…...

利用Ai对生成的测试用例进行用例评审

利用AI对生成的测试用例进行用例评审,可以从用例的完整性、有效性、一致性等多个维度展开,借助自然语言处理、机器学习等技术,提高评审效率和准确性。以下为你详细介绍具体方法: 1. 需求匹配度评审 利用自然语言处理(NLP)技术 步骤:首先将软件需求文档和生成的测试用例…...

JAVAweb-JS基本数据类型,变量,DOM,pop,push函数,事件

JavaScript,可以嵌套在静态页面中添加一些动态语言. JavaScript是开发web脚本语言,但也被用到了很多非浏览器环境中,比如node平台 JS可以嵌套在静态页面中可以给静态页面添加一些动态效果(脚本语言),不同浏览器厂商(在浏览器中都有内置解析器解析JS语法) <!DOCTYPE html&g…...

SpringBoot源码解析(十一):准备应用上下文

SpringBoot源码系列文章 SpringBoot源码解析(一)&#xff1a;SpringApplication构造方法 SpringBoot源码解析(二)&#xff1a;引导上下文DefaultBootstrapContext SpringBoot源码解析(三)&#xff1a;启动开始阶段 SpringBoot源码解析(四)&#xff1a;解析应用参数args Sp…...

Python CNN基于深度学习的轴承故障智能检测平台

一、 项目概述 本项目旨在利用深度学习技术&#xff0c;构建一个基于Python的轴承故障智能检测平台。该平台能够对轴承的振动信号进行分析&#xff0c;自动识别轴承的健康状态&#xff0c;并判断故障类型&#xff0c;从而实现轴承故障的早期预警和诊断&#xff0c;提高设备的运…...

CCNP知识笔记

路由选路原理 路由信息来源 路由信息怎么来的&#xff1f; 直连路由&#xff08;C&#xff09;&#xff1a; 通过直连接口UP产生智联路由条目&#xff08;物理层UP数据链路层UP&#xff09; 静态路由&#xff08;S&#xff09;&#xff1a; 通过网络管理员逐条写入的路由条…...

递归树求解递归方程

*递归树是迭代计算模型 *递归树的生成过程与迭代过程一致 *根据递归定义不断扩展递归树&#xff0c;直到边界条件&#xff08;其值已知&#xff09; *对递归树产生的所有项求和就是递归方程的解 例一&#xff1a; T(n) 1 n1 T(n) 2T(n/2) n n>1 对于…...

2025年【熔化焊接与热切割】找解析及熔化焊接与热切割模拟试题

在当今工业领域&#xff0c;熔化焊接与热切割技术作为重要的加工手段&#xff0c;广泛应用于各种金属结构的制造与维修中。然而&#xff0c;这些作业过程伴随着高风险&#xff0c;对从业人员的安全知识和技能提出了极高的要求。为了提升相关人员的安全意识和操作技能&#xff0…...

Linux系统:服务器常见服务默认IP端口合集

服务器的默认IP端口取决于所使用的协议和服务类型。以下是一些常见服务和协议的默认端口&#xff1a; 服务端口实例&#xff1a; HTTP服务 默认端口&#xff1a;80 说明&#xff1a;用于普通的HTTP网页访问。例如&#xff0c;访问 http://example.com 时&#xff0c;默认使用8…...

LangChain教程 - RAG - PDF摘要

系列文章索引 LangChain教程 - 系列文章 随着人工智能和大语言模型&#xff08;LLM&#xff09;的快速发展&#xff0c;越来越多的工具和平台被引入以简化我们的日常任务。LangChain是一个非常强大的框架&#xff0c;它能够帮助开发者构建与LLM&#xff08;如OpenAI、Ollama等…...

[java基础-JVM篇]3_JVM类加载机制

摘要&#xff1a;JVM通过设立不同优先级和职责的加载器保证了类加载的安全性与灵活性&#xff0c;即双亲委派机制&#xff0c;但是实际生产中更复杂的需求又需要破坏双亲委派&#xff0c;即打破JVM约定过的类加载程序 目录 类的生命周期 类加载 加载 类加载器 双亲委派机制…...

相似性搜索(2)

在本篇中&#xff0c;我们通过播客相似性搜索为例&#xff0c;进一步研究基于chroma 的相似性搜索&#xff1a; 参考&#xff1a; https://www.kaggle.com/code/switkowski/building-a-podcast-recommendation-engine/notebook 数据集来源&#xff1a; https://www.kaggle.…...

Linux 本地部署 Deepseek-R1 大模型!

DeepSeek-R1 的发布&#xff0c;掀起了一场风暴&#xff01; 开源、强大、本地可部署&#xff0c;真正私有的 AI 助手&#xff0c;不受网络、隐私等限制&#xff0c;数据安全感直接拉满&#xff01; 今天&#xff0c;手把手带你在 Linux 上本地部署 DeepSeek-R1&#xff0c;关…...

软件测试高频面试题

以下是一些软件测试高频面试题&#xff1a; 基础概念类 HTTP和HTTPS的区别&#xff1a;HTTPS使用SSL/TLS协议对传输数据加密&#xff0c;HTTP没有加密&#xff1b;HTTPS可确保数据完整性&#xff0c;防止传输中被篡改&#xff0c;HTTP不保证&#xff1b;HTTP默认用80端口&…...

光明谷推出AT指令版本的蓝牙音箱SOC 开启便捷智能音频开发新体验

前言 在蓝牙音箱市场竞争日益激烈的当下&#xff0c;开发一款性能卓越且易于上手的蓝牙音箱&#xff0c;成为众多厂商追求的目标。而光明谷科技有限公司推出的 AT 指令版本的蓝牙音箱 SOC&#xff0c;无疑为行业带来了全新的解决方案&#xff0c;以其诸多独特卖点&#xff0c;迅…...

数据安全_笔记系列01:数据分类分级与敏感数据识别详解

数据安全_笔记系列01&#xff1a;数据分类分级与敏感数据识别详解 1)、数据分类分级与敏感数据识别详解 数据分类分级是数据安全治理的核心环节&#xff0c;旨在根据数据的敏感性和重要性&#xff0c;制定差异化的保护策略。以下从 定义、法规、方法、工具、案例 等维度全面解…...

SOUI基于Zint生成UPC码

UPC 码&#xff08;Universal Product Code&#xff0c;通用产品代码&#xff09;是一种广泛使用的条形码系统&#xff0c;主要用于零售商品的标识和追踪。有两种主要格式&#xff1a;UPC-A 和 UPC-E。 UPC-A 长度12位数字。适用于大型商品 UPC-E 长度8位数字。UPC-E是UPC-A…...

MySQL 主从同步延迟:原因剖析与解决之道

在现代数据库应用中&#xff0c;MySQL 的主从同步是一种常见且重要的架构模式&#xff0c;它能提供数据备份、读写分离等诸多优势&#xff0c;有效提升系统的可用性和性能。然而&#xff0c;主从同步延迟问题却常常困扰着数据库管理员和开发者&#xff0c;严重时甚至会影响业务…...

C语言数据结构—二叉树的链式结构实现

目录 1、建立二叉树 1.1 二叉树的结构 1.2 手动建立二叉树 2、二叉树的遍历 2.1 二叉树的三种遍历方式 2.1.1 前序遍历 2.1.2 中序遍历 2.1.2 后序遍历 3、求二叉树的结点数和二叉树的高度 3.1 求二叉树结点数 3.2 求二叉树叶子结点 3.3 求二叉树第k层结点的个数 …...

sysbench压测pgsql数据库 —— 筑梦之路

这里主要使用sysbench工具对Pgsql数据库进行基准测试。 1. 创建数据库和用户名 # 创建用户和数据库CREATE USER sysbench WITH PASSWORD 123456;CREATE DATABASE sysbench owner sysbench;# 给用户授权访问 vim pg_hba.confhost sysbench sysbench 127…...

超级详细Spring AI运用Ollama大模型

大模型工具Ollama 官网:https://ollama.com/ Ollama是一个用于部署和运行各种开源大模型的工具; 它能够帮助用户快速在本地运行各种大模型&#xff0c;极大地简化了大模型在本地运行的过程。用户通过执行几条命令就能在本地运行开源大模型&#xff0c;如Lama 2等; 综上&#x…...

CF934B A Prosperous Lot

算法&#xff1a;贪心 rating : 1200 思路&#xff1a; 题目要求输出的数不能超过10^18&#xff1b; 10^18共有19位&#xff0c;那么不超过范围的前提下最多能输出几个环呢&#xff1f; 环最多为2个&#xff0c;也就是数字8&#xff0c;不超过数据范围的情况下能输出18个8…...

四步彻底卸载IDEA!!!

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 大家好&#xff0c;我们今天来学习四步彻底卸载IDEA&#xff01;&#xff01;&#xff01; 首先我要提醒各位 如果你想删除 IDEA 相关&#xf…...

基于Spring Boot的健康医院门诊在线挂号系统设与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

快速搭建SOCKS5代理服务器教程(一键多ip脚本)

文章目录 前言环境要求一、先看效果二、使用一键脚本总结 前言 华为云服务器一键搭建一拖10 或者20 ip 脚本 环境要求 操作系统&#xff1a;CentOS 7.8服务器&#xff1a;建议至少1核1G配置云服务器 可多ip 搭建一键输出 一、先看效果 二、使用一键脚本 yum install -y wge…...

鸿蒙ArkTS页面如何与H5页面交互?

鸿蒙页面如何与H5页面交互&#xff1f; 先看效果前言通信功能介绍Web组件使用问题 Harmony OS NEXT版本&#xff08;接口及解决方案兼容API12版本或以上版本) 先看效果 功能介绍 点击Click Me按钮可以接收展示鸿蒙传递给html的内容点击霓虹灯按钮可以同步更新底部鸿蒙页面的按…...

深度解析SmartGBD助力Android音视频数据接入GB28181平台

在当今数字化时代&#xff0c;视频监控与音视频通信技术在各行各业的应用愈发广泛。GB28181协议作为中国国家标准&#xff0c;为视频监控设备的互联互通提供了规范&#xff0c;但在实际应用中&#xff0c;许多Android终端设备并不具备国标音视频能力&#xff0c;这限制了其在相…...

软件安全测评报告内容和作用简析,如何获取权威安全测评报告?

软件安全测评报告是对软件系统进行安全性评估后形成的一份详细文档。它通过对软件系统的设计、实现及运行环境等多个方面进行系统性分析&#xff0c;以识别潜在的安全风险和漏洞。该报告不仅包含漏洞的详细信息和修复建议&#xff0c;也是对软件开发者和管理者的重要决策支持工…...

leetcode 207. 课程表

题目如下 数据范围 做题之前先搞清楚一个概念:拓扑序列 即在一个简单图内找一个入度为0的节点&#xff0c; 删除这个节点并删去与之相连接的边并把这条边连接的节点入度减一(如果存在)。 如此循环往复直到图内不存在节点我们认为拓扑序列存在。 那么在本题中参与课程的要求…...

第4章 4.4 EF Core数据库迁移 Add-Migration UpDate-Database

4.4.1 数据库迁移原理 总结一下就是&#xff1a; 1. 数据库迁移命令的执行&#xff0c;其实就是生成在数据库执行的脚本代码&#xff08;两个文件&#xff1a;数字_迁移名.cs 数字_迁移名.Designer.cs&#xff09;&#xff0c;用于对数据库进行定义和修饰。 2. 数据库迁移…...

PyEcharts 数据可视化:从入门到实战

一、PyEcharts 简介 PyEcharts 是基于百度开源可视化库 ECharts 的 Python 数据可视化工具&#xff0c;支持生成交互式的 HTML 格式图表。相较于 Matplotlib 等静态图表库&#xff0c;PyEcharts 具有以下优势&#xff1a; 丰富的图表类型&#xff08;30&#xff09;动态交互功…...

数仓搭建实操(传统数仓oracle):DWD数据明细层

数据处理思路 DWD层, 数据明细层>>数据清洗转换, 区分事实表,维度表 全是事实表,没有维度表>>不做处理 数据清洗>>数据类型varchar 变成varchar2, 日期格式统一(时间类型变成varchar2); 字符数据去空格 知识补充: varchar 存储定长字符类型 ; 存储的数据会…...

《Mycat核心技术》第17章:实现MySQL的读写分离

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 星球项目地址&#xff1a;https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…...

区块链(14):FISCO BCOS配置及使用控制台

1 获取控制台并回到fisco目录 cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh 2 拷贝控制台配置文件 若节点未采用默认端口,请将文件中的20200替换成节点对应的…...

react路由总结

目录 一、脚手架基础语法(16~17) 1.1、hello react 1.2、组件样式隔离(样式模块化) 1.3、react插件 二、React Router v5 2.1、react-router-dom相关API 2.1.1、内置组件 2.1.1.1、BrowserRouter 2.1.1.2、HashRouter 2.1.1.3、Route 2.1.1.4、Redirect 2.1.1.5、L…...

Python爬虫处理网页中的动态内容

文章目录 前言一、Python环境搭建1.Python安装2.选择Python开发环境 二、Python爬虫处理网页中的动态内容1. 使用 Selenium 库2. 使用 Pyppeteer 库3. 分析 API 请求 前言 在网页中&#xff0c;动态内容通常是指那些通过 JavaScript 在页面加载后动态生成或更新的内容&#xf…...

Lineageos 22.1(Android 15)Launcer简单调整初始化配置

一、前言 Launcer的初始化配置主要在如下的xml文件夹下&#xff0c;默认读取的5x5 这里我们把device_profiles调整一下&#xff0c;然后新建一个default_workspace_my.xml作为我们自己的配置就行。 二、配置 注意Lineageos 的Launcer是在lineageos/packages/apps/Trebuchet…...

计算机毕业设计SpringBoot+Vue.js教师工作量管理系统(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

【Scrapy】Scrapy教程7——存储数据

上一节我们对爬虫程序的默认回调函数parse做了改写,提取的数据可以在Scrapy的日志中打印出来了,光打印肯定是不行的,还需要把数据存储,数据可以存到文件,也可以存到数据库,我们一一来看。 存储数据到文件 首先我们看看如何将数据存储到文件,在讲[[【Scrapy】Scrapy教程…...

使用Socket编写超牛的http服务器和客户端(一)

实现一个高性能的基于 IOCP(I/O Completion Ports)的 HTTP 服务器,支持多线程、动态线程池调整和路由处理。 主要功能和特性 IOCP 模型: 使用多个 IOCP 句柄(IOCP_COUNT),将客户端连接均匀分配到不同的 IOCP 上,减少线程竞争。 工作线程使用 GetQueuedCompletionStatu…...

centos服务器巡检脚本

服务器巡检脚本 系统负载shell脚本python将txt文件转换成excel&#xff0c;不正常巡检结果标记红色 系统负载shell脚本 #!/bin/bash#文件路径 path"/root/monitor.txt"#yum -y install bc sysstat net-tools lrzsz #获取主机名 system_hostname$(hostname | awk {pr…...

Linux-Ansible模块完结

文章目录 User和GroupHostname、Cron、Yum和Service &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Linux专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年02月23日19点59分 User和Group User和Group模块实践 ansible 192.168.1.100 -m …...

厦大团队:DeepSeek大模型概念、技术与应用实践 140页PDF完整版下载

DeepSeek使用教程系列&#xff1a; 厦门大学&#xff1a; DeepSeek大模型概念、技术与应用实践 140页PDF完整版文件 厦大团队&#xff1a;DeepSeek大模型概念、技术与应用实践&#xff08;140页PPT读懂大模型&#xff09;.pdf https://pan.baidu.com/s/1de4UIxqPsvMBIYcpen_M-…...

跟据spring boot版本,查看对应的tomcat,并查看可支持的tomcat的版本范围

一 查看springboot自带的tomcat版本&#xff1a; 可直接在项目中找到Maven Dependencies中找到tomcat版本 二、查看SpringBoot内置tomcat版本的支持范围 我这边是跟据maven仓库查看的 首先跟据链接打开maven仓库&#xff1a;https://mvnrepository.com/ 然后搜索&#xff1a…...

小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统,不需要降级 v1.0.91 (2025)

小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统&#xff0c;不需要降级 v1.0.91 &#xff08;2025&#xff09; 本文内容需要你有一定的 Linux 操作基础&#xff0c;最好是程序员那种&#xff0c;英文水平足够用才行。一般人不需要使用这么复杂的路由器操作系统&#xff0c…...

跳格子游戏

跳格子游戏 真题目录: 点击去查看 E 卷 100分题型 题目描述 地上共有N个格子,你需要跳完地上所有的格子,但是格子间是有强依赖关系的,跳完前一个格子后,后续的格子才会被开启,格子间的依赖关系由多组steps数组给出,steps[0]表示前一个格子,steps[1]表示steps[0]可以开…...

抓包工具是什么?

抓包工具是一种用于捕获和分析网络数据包的软件或硬件设备。它可以帮助用户监控网络通信过程&#xff0c;查看网络中传输的数据内容、协议类型、源地址、目的地址等信息。以下是关于抓包工具的一些详细解释&#xff1a; 1. 主要功能 捕获数据包&#xff1a;抓包工具能够实时捕…...

【用deepseek和chatgpt做算法竞赛】——还得DeepSeek来 -Minimum Cost Trees_5

往期 【用deepseek和chatgpt做算法竞赛】——华为算法精英实战营第十九期-Minimum Cost Trees_0&#xff1a;介绍了题目和背景【用deepseek和chatgpt做算法竞赛】——华为算法精英实战营第十九期-Minimum Cost Trees_1&#xff1a;题目输入的格式说明&#xff0c;选择了邻接表…...