html+css 实现水波纹按钮

server/2024/10/22 14:26:59/

前言:哈喽,大家好,今天给大家分享html+css 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕

支持一下

文章目录

  • 效果
  • 原理解析
    • 上代码,可以直接复制使用

效果

水纹效果

原理解析

1.给每一个按钮添加一个hover效果,并给每一个按钮添加一个子元素 带水波纹的背景图
水纹子元素带背景图

2.当按钮上有鼠标时,hover效果触发,改变这个子元素(带背景图的位置和字体颜色)
水纹hover时的动画

3.具体的变换参数,直接看代码,可以一键复制,查看效果

上代码,可以直接复制使用

目录

水纹效果目录

图片

水纹图片

html_22">html

html"><!DOCTYPE html>
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><title>html+css 实现水波纹按钮</title><link rel="stylesheet" href="./style.css">
</head><body>
<div class="container"><h1 style="css language-css">text-align: center;color:#000;margin-bottom: 50px;padding-top: 50px">html+css 实现水波纹按钮</h1><div class="btn-box"><div class="btn"><span>点赞</span><div class="wave"></div></div><div class="btn"><span>关注</span><div class="wave"></div></div><div class="btn"><span>收藏</span><div class="wave"></div></div><div class="btn"><span>转发</span><div class="wave"></div></div></div>
</div></body></html>

css_64">css

css">*{/* 初始化 */margin: 0;padding: 0;
}
.container{/* 100%窗口高度 */height: 100vh;/* 渐变背景 */background: linear-gradient(200deg,#e7f0fd,#accbee);
}.btn-box{width: 500px;/* 弹性布局 */display: flex;/* 横向排列 */flex-direction: row;/* 允许换行 */flex-wrap: wrap;margin: 0 auto;/* 平均分配宽度 */justify-content: space-around;
}
.btn-box .btn{/* 相对定位 */position: relative;width: 200px;height: 60px;line-height: 60px;text-align: center;color: #00adff;border: 2px solid #00adff;font-size: 18px;margin: 20px 0;/* 字间距 */letter-spacing: 4px;cursor: pointer;/* 溢出隐藏 */overflow: hidden;
}
.btn-box .btn span{position: relative;z-index: 1;/* 动画过渡 */transition: 1s;
}
.btn-box .btn .wave{/* 绝对定位 */position: absolute;top: calc(100% + 22px);left: 0;width: 100%;height: 100%;background-color: #00adff;transition: 1s;
}
.btn-box .btn .wave::before{content: "";position: absolute;top: -22px;left: 0;background-image: url("./wave.png");width: 100%;height: 22px;/* 执行动画:动画名 时长 线性的 无限次播放 */animation: animate 0.5s linear infinite;
}/* 定义动画 */
@keyframes animate {0%{background-position-x: 0;background-position-y: -22px;}100%{background-position-x: 118px;background-position-y: -22px;}
}/*hover时进行的动画*/
.btn-box .btn:hover .wave{top: 0;
}
.btn-box .btn:hover span{color: #fff;
}

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕

整理不易,点赞关注宝码香车

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作


http://www.ppmy.cn/server/90117.html

相关文章

关于gateway与oauth2的兼容问题处理

文章目录 前言问题解决方案手写RPC采用spring feign调用采用JWT解析 前言 令牌鉴权方案的选择上&#xff0c;比较流行的有spring security 自定义的令牌&#xff08;比如JWT令牌&#xff09;、spring securityoauth2&#xff0c;假如使用了spring security oauth2的方案&…

【Rust日报】跨平台高性能计算语言扩展CubeCL

[rust is best]10 亿行挑战方案 作者尝试优化 Rust 中「10 亿行挑战」的解决方案。从原始的 5 分钟优化到了 9 秒。 作者的主要目标是创建一段简单、可维护且生产就绪的代码&#xff0c;而且没有使用不安全的操作。以下是一些关键经验&#xff1a; 使用 --release 优化构建避免…

【Android】安卓四大组件之广播知识总结

文章目录 动态注册使用BroadcastReceiver监听Intent广播注册Broadcast Receiver 静态注册自定义广播标准广播发送广播定义广播接收器注册广播接收器 有序广播修改发送方法定义第二个广播接收器注册广播接收器广播截断 使用本地广播实践-强制下线使用ActivityCollector管理所有活…

LLM 大语言模型显存消耗估计与计算

LLM 大语言模型显存消耗估计与计算 1. LLM 大语言模型开发流程 在大模型&#xff08;如 LLaMA-7B、GPT-3 等&#xff09;的开发、训练、微调、推理和部署过程中&#xff0c;各个阶段的流程都涉及多个复杂的步骤。以下是详细的流程描述&#xff0c;涵盖训练和微调的区别&#…

MySQL数据库(基础篇)

&#x1f30f;个人博客主页&#xff1a;心.c 前言&#xff1a;今天讲解的是MySQL的详细知识点的&#xff0c;希望大家可以收货满满&#xff0c;话不多说&#xff0c;直接开始搞&#xff01; &#x1f525;&#x1f525;&#x1f525;文章专题&#xff1a;MySQL &#x1f63d;感…

从零开始的Python开发日记(4):如何连接SQLite数据库

如何使用Python连接SQLite数据库 SQLite 是一种轻量级的嵌入式数据库&#xff0c;广泛用于小型应用和开发原型。Python 提供了内置的 sqlite3 库&#xff0c;可以方便地连接和操作 SQLite 数据库。本文将介绍如何使用 Python 连接 SQLite 数据库&#xff0c;并包含代码示例。 …

Spring 简化jdbc开发 05

文章目录 1. JdbcTemplate&#xff1a;2.命名参数和占位符3. 异常处理&#xff1a;4. 事务管理&#xff1a; 在 Spring 框架中&#xff0c;通过其提供的 JDBC 抽象和工具类&#xff0c;可以极大地简化 JDBC 的开发过程&#xff0c;减少了传统 JDBC 开发中的样板代码和错误处理。…

微信答题小程序产品研发-UI界面设计

高保真原型虽然已经很接近产品形态了&#xff0c;但毕竟还不能够直接交付给开发。这时就需要UI设计师依据之前的原型设计&#xff0c;进一步细化和实现界面的视觉元素&#xff0c;包括整体视觉风格、颜色、字体、图标、按钮以及交互细节优化等。 UI设计不仅关系到用户的直观感…