css炫酷的3D水波纹文字效果实现详解

news2025/4/6 11:42:03

在这里插入图片描述

炫酷的3D水波纹文字效果实现详解

这里写目录标题

  • 炫酷的3D水波纹文字效果实现详解
    • 项目概述
    • 技术栈
    • 核心实现
      • 1. 基础布局
      • 2. 渐变背景
      • 3. 文字效果实现
        • 3.1 基础样式
        • 3.2 文字漂浮动画
      • 4. 水波纹效果
        • 4.1 模糊效果
        • 4.2 水波动画
      • 5. 交互效果
    • 技术要点
    • 项目难点与解决方案
    • 总结

项目概述

在这个项目中,我们实现了一个具有3D水波纹效果的文字动画。当用户hover文字时,会触发水波纹扩散效果,同时文字本身具有漂浮动画和模糊效果,营造出梦幻的水中文字效果。

技术栈

  • HTML5
  • CSS3(动画、渐变、混合模式等)

核心实现

1. 基础布局

首先,我们需要创建基本的HTML结构:

<div class="text-container">
    <div class="text" data-text="水波纹">水波纹</div>
    <div class="water-effect">
        <div class="water-ripple"></div>
    </div>
</div>

2. 渐变背景

使用CSS的linear-gradient创建渐变背景,增加视觉效果:

background: linear-gradient(45deg, #12c2e9, #c471ed, #f64f59);

3. 文字效果实现

3.1 基础样式
.text {
    font-size: 5rem;
    font-weight: bold;
    color: rgba(255, 255, 255, 0.8);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    position: relative;
    animation: float 6s ease-in-out infinite;
}
3.2 文字漂浮动画

使用@keyframes实现文字的上下漂浮效果:

@keyframes float {
    0%, 100% {
        transform: translateY(0) rotateX(0deg);
    }
    50% {
        transform: translateY(-20px) rotateX(5deg);
    }
}

4. 水波纹效果

4.1 模糊效果

使用伪元素和filter属性创建水波纹的模糊效果:

.text::before {
    content: attr(data-text);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    color: rgba(255, 255, 255, 0.5);
    filter: blur(12px);
    animation: water-effect 3s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
4.2 水波动画

定义水波效果的动画:

@keyframes water-effect {
    0%, 100% {
        transform: translateY(0) skewX(0deg) scale(1);
        filter: blur(12px) brightness(1);
    }
    25% {
        transform: translateY(-15px) skewX(-4deg) scale(1.05);
        filter: blur(16px) brightness(1.3);
    }
    75% {
        transform: translateY(15px) skewX(4deg) scale(0.95);
        filter: blur(18px) brightness(0.7);
    }
}

5. 交互效果

当用户hover文字时触发水波纹扩散动画:

.water-ripple {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 200%;
    height: 200%;
    background: radial-gradient(circle at center, rgba(255,255,255,0.2) 0%, transparent 80%);
    opacity: 0;
    mix-blend-mode: overlay;
}

@keyframes ripple {
    0% {
        transform: translate(-50%, -50%) scale(0.3);
        opacity: 0.8;
    }
    100% {
        transform: translate(-50%, -50%) scale(2);
        opacity: 0;
    }
}

技术要点

  1. CSS动画性能优化:使用transform和opacity进行动画,避免使用影响布局的属性
  2. 3D效果:通过perspective属性和rotateX变换创建3D效果
  3. 混合模式:使用mix-blend-mode实现更真实的水波纹效果
  4. 动画曲线:精心调整cubic-bezier曲线,使动画更加流畅自然

项目难点与解决方案

  1. 水波纹效果的真实感

    • 难点:单纯的放大动画无法模拟真实的水波纹
    • 解决:结合使用radial-gradient和mix-blend-mode创建渐变效果
  2. 文字模糊效果的性能

    • 难点:过多的filter效果可能导致性能问题
    • 解决:将模糊效果限制在伪元素上,并适当调整blur值
  3. 动画流畅度

    • 难点:多个动画同时进行可能造成卡顿
    • 解决:使用transform属性进行动画,避免重排重绘

总结

这个项目展示了如何使用纯CSS实现复杂的视觉效果。通过合理运用CSS3的新特性,我们可以创建出既美观又性能优良的动画效果。项目中的技术点和解决方案对于其他类似的动画效果实现也具有参考价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2329190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

P1036 [NOIP 2002 普及组] 选数(DFS)

题目描述 已知 n 个整数 x1​,x2​,⋯,xn​&#xff0c;以及 1 个整数 k&#xff08;k<n&#xff09;。从 n 个整数中任选 k 个整数相加&#xff0c;可分别得到一系列的和。例如当 n4&#xff0c;k3&#xff0c;4 个整数分别为 3,7,12,19 时&#xff0c;可得全部的组合与它…

后端思维之高并发处理方案

前言 在互联网时代&#xff0c;高并发已经成为后端开发者绕不开的话题。无论是电商平台的秒杀活动、抢购系统&#xff0c;还是社交应用的高频互动&#xff0c;高并发场景的出现往往伴随着巨大的技术挑战。 如何在流量激增的同时&#xff0c;确保系统稳定运行、快速响应&#xf…

14.2linux中platform无设备树情况下驱动LED灯(详细编写程序)_csdn

我尽量讲的更详细&#xff0c;为了关注我的粉丝&#xff01;&#xff01;&#xff01; 因为这跟之前的不一样&#xff0c;提出来驱动的分离和分层。 提到驱动分离和分层&#xff0c;必然可以联系上一章咱们知道的驱动-总线-设备。 在无设备树的状态下&#xff0c;必然要写寄存…

K8s的BackUP备份

文章目录 1、kubeadm 安装的单 master 节点数据备份和恢复方式2、Velero 工具3、Velero 服务部署4、备份还原数据 ETCD备份/还原有多种类型&#xff0c;取决于你 k8s 集群的搭建方式 1、kubeadm 安装的单 master 节点数据备份和恢复方式 拷贝 etcdctl 至 master 节点&#xf…

Ruoyi-vue plus 5.2.2 flowble设计流程点击开始流程图错误

网关设置条件或者是事件删除后出现&#xff0c;点击网关节点无法找到下面的事件节点。 配置页面事件错误&#xff0c;点背景配置进去了事件&#xff0c;发现再次加载&#xff0c;或者删除的时候VUE页面无法加载。 解决方式&#xff1a;查看XML文件&#xff0c;这个节点是否存在…

如何快速入门物联网单片机开发?

背景 物联网单片机硬件开发涉及多个阶段&#xff0c;元器件是否“自己设计”取决于具体需求。以下是详细解答和学习方案&#xff1a; 一、元器件是否自己设计&#xff1f; 通用元器件&#xff1a; 大多数情况下&#xff0c;开发者直接使用现成的标准化元器件&#xff08;如电阻…

在 .NET 8 中使用自定义令牌身份验证掌握 SignalR Hub 安全性

最近在练习做一个 Web 开发项目&#xff0c;需要使用 WebSockets 传输数据&#xff0c;实现实时通信。这是一个 React.js 项目&#xff0c;后端是 .NET。 虽然 MSDN 提供了出色的顶级文档&#xff0c;但它通常缺少高级用例所需的低级细节。 一种这样的场景是使用自定义令牌对…

基于springboot+vue的二手车交易系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

React安装使用教程

ReactAnt Designrouteraxios安装完整教程 官网&#xff1a;React Native 中文网 使用React来编写原生应用的框架 一&#xff0c;安装 npx create-react-app my-app npm start npm eject 暴露项目优先提交代码 git add . git commit -m “搭建项目“ 4.yarn add node-sass …

Day20 -自动化信息收集工具--ARL灯塔的部署

准备&#xff1a; 纯净的Docker环境 ARL的包 一、Docker的部署 00x1 更新系统包 sudo apt update 00x2 安装必要的依赖包 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common 00x3 下载docker和docker-compose apt-get install do…

精品可编辑PPT | “新基建”在数字化智慧高速公路中的支撑应用方案智慧建筑智慧交通解决方案施工行业解决方案

本文详细阐述了“新基建”在数字化智慧高速公路中的支撑应用方案&#xff0c;从政策背景出发&#xff0c;指出国家在交通领域的一系列发展规划和指导意见&#xff0c;强调了智慧交通建设的重要性。分析了当前高速公路存在的问题&#xff0c;如基础感知设施不足、协同水平低、服…

【瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板测评】PWM

【瑞萨 RA-Eco-RA2E1-48PIN-V1.0 开发板测评】PWM 本文介绍了瑞萨 RA2E1 开发板使用内置时钟和定时器实现 PWM 输出以及呼吸灯的项目设计。 项目介绍 介绍了 PWM 和 RA2E1 的 PWM 资源。 PWM 脉冲宽度调制&#xff08;Pulse Width Modulation, PWM&#xff09;是一种对模拟…

数据流和重定向

1、数据流 不管正确或错误的数据都是默认输出到屏幕上&#xff0c;所以屏幕是混乱的。所以就需要用数据流重定向将这两 条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去 标准输入&#xff08;standard input&#xff0c;简称stdin&#xff…

【GPT入门】第33 课 一文吃透 LangChain:chain 结合 with_fallbacks ([]) 的实战指南

[TOC](【GPT入门】第33课 一文吃透 LangChain&#xff1a;chain 结合 with_fallbacks ([]) 的实战指南) 1. fallback概述 模型回退&#xff0c;可以设置在llm上&#xff0c;也可以设置在chain上&#xff0c;都带有with_fallbacks([])函数 2. llm的回退 2.1 代码 核心代码&…

【51单片机】2-7【I/O口】点亮数码管

1.硬件 51最小系统数码管模块 2.软件 静态数码管 #include "reg52.h" //头文件 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8;sbit LSAP2^2;//位选 sbit LSBP2^3; sbit LSCP2^4;u8 code smgduan[17]{0x3f,0x06,0x5b,0x4f,0…

叁仟数智指路机器人的智能导航精度如何?

哇塞&#xff01;各位朋友们&#xff0c;来了解一下超厉害的叁仟数智指路机器人的智能导航精度吧&#xff01;它的精度可是因为采用了不同的定位技术而展现出独特魅力哦&#xff01; 先看蓝牙定位&#xff0c;这可是超实用的&#xff01;一般精度能保持在 3 - 5 米左右呢&…

华为存储考试内容HCIP-Storage

华为认证存储高级工程师 | Huawei Certified ICT Professional-Storage 是培训与认证具备对存储系统进行规划设计、部署实施、性能优化、管理运维和故障处理能力的存储高级工程师 通过该认证证明&#xff1a;工程师能理解闪存及分布式存储产品的相关功能及使用场景&#xff0…

A*算法详解(新手入门)——图文并茂,学习笔记分享

前言 本文是博主在学习A*算法时做的一个小案例&#xff0c;有不懂的地方可以私信博主一起讨论学习&#xff0c;由于博主水平有限&#xff0c;可能存在部分知识点遗漏或书写不够严谨&#xff0c;欢迎各位志同道合的朋友批评指教&#xff0c;博主定当虚心学习&#xff0c;感谢各…

初学STM32系统时钟设置

资料来自正点原子 在学习江科大教程示例的时候默认系统时钟是72MHZ&#xff0c;但是这个系统时钟是怎么过来的呢&#xff0c;通过时钟树以及相关的资料的学习可知&#xff0c;系统时钟它可以是内部RC时钟HSI 8MHZ通过锁相环倍频而来&#xff0c;也可以是外部晶振4-16MHZ通过锁相…

如何在 Windows 10 上安装 PyGame

PyGame 是 Python 编程语言中的一组跨平台模块&#xff0c;这意味着您可以在任何操作系统上安装它&#xff0c;这篇文章告诉您如何在 Windows 10 上安装 PyGame。 如何在 Windows 10 上安装 PyGame&#xff1f; PyGame 依赖于 Python&#xff0c;这意味着您必须在安装 PyGame …