如何使用纯CSS实现抽象的水波荡漾的动画(附源码)

本篇文章给大家带来的内容是关于如何使用纯css实现抽象的水波荡漾的动画(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

745211572-5b9ef45e8e966_articlex.gif

源代码下载

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,容器中包含 9 个元素:

居中显示:

body {    margin: 0;    height: 100vh;    display: flex;    align-items: center;    justify-content: center;    background-color: black;}

定义容器尺寸:

立即学习“前端免费学习笔记(深入)”;

.container {    width: 30em;    height: 30em;    font-size: 10px;}

用 grid 布局把 9 个子元素排列成 3 * 3 的网格状:

.container {    display: grid;    grid-template-columns: repeat(3, 1fr);}

设置容器内子元素的样式,是通过伪元素来设置的:

.container span {    position: relative;}.container span::before,.container span::after {    content: '';    position: absolute;    box-sizing: border-box;    border-style: none solid solid none;    border-width: 1em;    border-color: gold;    width: 100%;    height: 100%;}

旋转容器,让它的尖端朝上:

.container {    transform: rotate(-135deg);}

增加子元素尺寸由小到大变化的动画:

.container span::before,.container span::after {    animation:         animate-scale 1.6s linear infinite;}@keyframes animate-scale {    from {        width: 1%;        height: 1%;    }    to {        width: 100%;        height: 100%;    }}

增加子元素边框色变化的动画:

.container span::before,.container span::after {    animation:         animate-border-color 1.6s linear infinite,        animate-scale 1.6s linear infinite;}@keyframes animate-border-color {    0%, 25% {        border-color: tomato;    }    50%, 75% {        border-color: gold;    }    100% {        border-color: black;    }}

增加子元素边框宽度变化的动画:

.container span::before,.container span::after {    animation:         animate-border-width 1.6s linear infinite,        animate-border-color 1.6s linear infinite,        animate-scale 1.6s linear infinite;}

最后,让 ::after 伪元素的动画时间慢半拍:

.container span::after {    animation-delay: -0.8s;}@keyframes animate-border-width {    0%, 100%{        border-width: 0.1em;    }    25% {        border-width: 1.5em;    }}

大功告成!

以上就是如何使用纯CSS实现抽象的水波荡漾的动画(附源码)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1611897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 02:37:23
css实现滚动文字的实例代码
下一篇 2025年12月24日 02:37:31

相关推荐

  • PHP函数文档怎么写_PHP函数文档编写规范与工具

    答案:编写PHP函数文档应遵循PHPDoc规范,使用@param、@return等标签描述参数、返回值及异常,配合PHPDocumentor等工具生成可视化文档,提升代码可读性与维护效率。 编写清晰、规范的PHP函数文档不仅能提升代码可读性,还能方便团队协作和后期维护。良好的文档让其他开发者(包括未…

    2026年9月7日
    000
  • CentOS定时任务如何设置_CentOS定时任务配置教程

    CentOS上设置定时任务主要依赖cron服务,通过crontab -e命令编辑用户级任务,格式为“分 时 日 月 周 command”,支持绝对路径、环境变量定义及日志重定向;系统级任务可通过/etc/crontab、/etc/cron.d/或周期目录配置;常见问题包括路径、权限、脚本头缺失和语法…

    2026年9月7日
    000
  • CentOS系统备份怎么操作_CentOS系统备份与恢复方法

    CentOS系统备份是确保数据安全与业务连续性的关键措施,必须通过文件级(如tar、rsync)和块级(如dd、LVM快照)工具结合实现,核心策略包括定期全量与增量备份、3-2-1存储规则、自动化执行、定期恢复测试及异地加密存储,以应对硬件故障、人为错误等风险,保障系统可快速恢复。 CentOS系统…

    2026年9月7日
    000
  • VSCode怎么设置外部连接_VSCode配置外部链接打开方式教程

    要让VSCode识别并正确打开特定类型链接,需通过配置系统级URL Scheme或使用扩展实现。首先,VSCode默认使用系统默认程序打开外部链接,如网页链接调用默认浏览器。若要自定义处理方式,可在操作系统注册自定义URL Scheme(如Windows修改注册表),将特定协议(如mycustoms…

    2026年9月7日
    000
  • HTML视频元素使用指南

    1、随着html5的推出,新增了video元素,使得网页具备了原生播放视频的能力。在此之前,网页无法直接嵌入视频,通常需要借助第三方插件(例如flash)来实现播放功能。用户必须预先在浏览器中安装这些插件才能正常观看视频内容,若未安装,则视频无法加载或播放。这种依赖外部插件的方式不仅影响兼容性,也降…

    2026年9月7日
    000
  • Outlook怎么设置签名_Outlook邮件签名设计与添加方法

    可通过设置签名在邮件中自动附加信息,Outlook支持创建包含文本、图片、链接的自定义签名,操作包括:一、在桌面客户端文件→选项→邮件→签名新建签名;二、编辑内容并插入图文与超链接;三、为不同账户设置默认签名;四、移动端通过设置添加签名;五、高级用户可导入HTML代码实现定制化设计。 如果您希望在发…

    2026年9月7日
    000
  • HTML转PDF如何切换旧引擎

    双击桌面上的九雷文档转换器快捷方式,启动软件主界面。 进入程序后,点击右上角的三条横线图标,在弹出的菜单中选择“系统设置”,打开全局配置页面。 立即学习“前端免费学习笔记(深入)”; 在右侧功能区找到“HTML转换PDF”设置模块,点击该选项,并在“转换引擎”下拉列表中选择“旧引擎”,即可成功切换至…

    2026年9月7日
    000
  • PHP怎么给图片添加马赛克_PHP实现图片局部马赛克效果

    答案:PHP通过GD库实现局部马赛克,核心是读取图像、确定区域与块大小,遍历区域并用统一颜色填充像素块。代码中addPartialMosaic函数处理JPG、PNG、GIF格式,支持边界检测与透明度保留,使用imagecolorat获取左上角像素色,imagefilledrectangle填充块。性…

    2026年9月7日
    200
  • WebMan技术在电子商务网站中的应用

    WebMan技术在电子商务网站中的应用 随着互联网的快速发展,电子商务成为了商业活动的主要形式之一。通过电子商务网站,商家能够方便地展示和销售他们的产品或服务。为了提供用户友好的界面和高效的交互体验,WebMan技术成为了不可或缺的组成部分。本文将介绍WebMan技术在电子商务网站中的应用,并提供相…

    2026年9月7日
    900
  • PHP实时输出在框架中如何使用_PHP框架中集成实时输出实践

    答案:PHP实时输出需关闭缓冲并使用特定响应类型。通过ob_end_flush()、flush()等函数控制输出,Laravel用StreamedResponse、Swoole用协程实现分段发送,关键在于理解缓冲机制并选择合适API以实现实时推送效果。 在PHP开发中,实时输出指的是服务器在处理过程…

    2026年9月7日
    200
  • win11系统提示”系统服务异常netprofm”_win11网络列表服务崩溃的处理

    win11系统提示”系统服务异常netprofm”_win11网络列表服务崩溃的处理win11系统提示”系统服务异常netprofm”_win11网络列表服务崩溃的处理win11系统提示”系统服务异常netprofm”_win11网络列表服务崩溃的处理win11系统提示”系统服务异常netprofm”_win11网络列表服务崩溃的处理

    win11系统提示“系统服务异常netprofm”通常意味着网络列表服务崩溃,解决办法包括重启服务、检查依赖项、修改注册表。1. 重启网络列表服务:通过运行services.msc找到”network list service”并重新启动;2. 检查依赖项:确保dhcp cl…

    2026年9月7日 用户投稿
    000
  • 蓝点马鲛快速鉴别技巧

    蓝点马鲛快速鉴别技巧蓝点马鲛快速鉴别技巧蓝点马鲛快速鉴别技巧蓝点马鲛快速鉴别技巧

    近期收到不少咨询,其中蓝点马鲛的识别方法受到广泛关注。现将相关鉴别要点整理如下,供各位参考,希望能带来实际帮助。 1、 蓝点马鲛体型修长且侧扁,体高小于头长,头部前端略呈钝圆形,上下颌长度基本相等。 2、 其头部特征显著,上下颌具尖锐有力的牙齿,身体扁而流线,头背部为黑蓝色,腹部则呈现银白色。 3、…

    2026年9月7日 用户投稿
    100
  • 如何使用CSS clip-path实现自适应尺寸的图形裁切?

    CSS clip-path 属性的自适应图形裁剪 为了让CSS clip-path 属性生成的裁剪图形能够适应不同尺寸的元素,例如按钮,我们需要使用相对单位。 直接使用百分比(%)会造成裁剪区域与元素尺寸不匹配的问题。 解决方法:使用vw和vh单位 以下代码片段演示了如何使用 vw (视口宽度) 和…

    2026年9月7日
    100
  • VSCode怎么看页面_VSCode实时预览HTML页面方法与配置教程

    使用Live Server扩展是VSCode中实时预览HTML页面最高效的方法,安装后通过右键“Open with Live Server”或点击底部状态栏“Go Live”启动本地服务器,保存文件时浏览器自动刷新,支持自定义浏览器、端口和排除文件,极大提升前端开发效率。 在VSCode中查看并实时…

    2026年9月7日
    100
  • SVG pathLength属性:如何测量路径长度并应用于动画和元素移动?

    svg pathlength 属性详解及应用 概述: SVG 的 pathLength 属性用于定义 元素路径的长度,单位为像素。这个属性非常有用,可以精确控制沿路径的动画和元素移动。 使用方法: 测量路径长度: 使用 JavaScript 的 getPathLength() 方法可以获取 元素的总…

    2026年9月7日
    100
  • 修复 Prestashop 1.7.7.2 产品变体主图不随属性变化的教程

    修复 Prestashop 1.7.7.2 产品变体主图不随属性变化的教程修复 Prestashop 1.7.7.2 产品变体主图不随属性变化的教程修复 Prestashop 1.7.7.2 产品变体主图不随属性变化的教程修复 Prestashop 1.7.7.2 产品变体主图不随属性变化的教程

    本教程旨在解决Prestashop 1.7.7.2版本中,产品变体(如颜色、尺寸)切换后,主图不随之更新的问题。该问题通常源于主题模板文件中的Smarty变量引用错误。我们将详细指导如何修改product-cover-thumbnails.tpl文件,将 $product.cover 替换为 $pr…

    2026年9月7日 用户投稿
    100
  • Java开发入门必学技能清单

    Java开发入门必学技能清单Java开发入门必学技能清单Java开发入门必学技能清单Java开发入门必学技能清单

    java开发一般指的是javaee方向的开发,从事这一领域需要掌握一系列核心技术,如servlet、jsp、spring框架、hibernate、数据库操作以及web服务等相关知识。 1、 打好JavaSE基础是学习Java开发的前提,无论后续是走JavaEE路线还是转向安卓开发,这都是必不可少的一…

    2026年9月7日 用户投稿
    100
  • 文本超出两行如何自动展开并显示“展开”按钮?

    让文本超出两行自动展开,并显示“展开”按钮的技巧 本文介绍如何使用CSS和JavaScript实现文本超出两行时自动展开,并添加“展开”按钮的功能。 首先,利用CSS控制文本显示行数,并隐藏超出部分: .text-container { display: -webkit-box; -webkit-l…

    2026年9月7日
    000
  • Win10系统关闭Mobile Hotspot的技巧

    windows 10自带的移动热点功能,允许用户通过wifi与其他设备共享当前的网络连接。然而,这一功能存在一个限制:如果超过五分钟没有设备连接,移动热点将会自动关闭。在本文中,我们将分享几种方法来防止windows 10中的移动热点功能自动关闭。 阻止移动热点关闭的方法 以下是两种主要解决方案:一…

    2026年9月6日
    300
  • 各种版本QT下载地址与VS2017+QT5.13.2环境搭建过程

    想要获取各种版本的qt及其相关工具的下载地址吗?以下是详细的链接和搭建环境的指南。 所有Qt版本下载地址: https://www.php.cn/link/1c7640494d7b763e2f1521e08075cf61 所有Qt Creator下载地址: https://www.php.cn/li…

    2026年9月6日
    100

发表回复

登录后才能评论
关注微信