新闻中心
css按钮想加入波纹点击效果怎么制作_通过::after伪元素扩散并结合动画
用::after实现按钮波纹效果需JS动态设置点击坐标并绑定CSS动画:按钮设relative定位和overflow:hidden;::after初始隐藏、圆形、居中定位;点击时计算相对坐标写入--x/--y变量;动画从scale(0)opacity(0.6)扩散至scale(3)opacity(0),结束保留状态。

用 ::after 伪元素实现按钮波纹点击效果,核心是:在点击时动态生成一个圆形遮罩,从点击位置中心向外扩散、透明度渐隐。关键在于获取点击坐标、定位伪元素、
触发动画。
1. 基础结构与定位准备
按钮本身需设为相对定位(position: relative),以便 ::after 能以它为参考进行绝对定位。伪元素初始隐藏,尺寸为 0,圆角设为 50% 实现圆形。
- 给按钮加
position: relative; overflow: hidden;(防止波纹溢出) -
::after设为content: ""、position: absolute、border-radius: 50% - 初始状态:
opacity: 0; transform: scale(0);
2. 动态设置点击坐标(JS 必不可少)
CSS 无法自动读取鼠标位置,必须用 J*aScript 在点击时计算并写入自定义属性(如 --x、--y),再由 ::after 读取。
- 监听按钮
click事件 - 用
event.clientX - button.getBoundingClientRect().left算出相对于按钮的 X 坐标(同理算 Y) - 通过
button.style.setProperty('--x', x + 'px')和--y写入
3. 动画与样式绑定
伪元素通过 CSS 变量定位,并用 @keyframes 控制扩散+淡出。动画需设为 forwards 保证结束状态保留(避免闪回)。
Codeium
一个免费的AI代码自动完成和搜索工具
345
查看详情
立即学习“前端免费学习笔记(深入)”;
-
::after定位:left: var(--x); top: var(--y); transform: translate(-50%, -50) scale(0); - 动画关键帧:从
scale(0) opacity(0.6)→scale(3) opacity(0) - 触发动画:
transition: transform 0.4s ease, opacity 0.4s ease;或直接用animation
4. 防止连续点击错位的小技巧
快速连点可能导致多个波纹叠加或定位错误。可加简单节流或重置逻辑:
- 每次点击前先清除上一次的动画类(如有)或重置
::after的transform和opacity - 用
getComputedStyle检查是否正在动画中,跳过重复触发 - 或更简单:动画结束后用
animationend事件自动清空--x/--y
基本上就这些。不复杂但容易忽略 JS 坐标计算和伪元素定位的配合。做好这几点,波纹就能稳稳从指尖绽开。
以上就是css按钮想加入波纹点击效果怎么制作_通过::after伪元素扩散并结合动画的详细内容,更多请关注其它相关文章!
# javascript
# java
# css
# 抚顺seo快排成功案例
# 广州银川网站推广
# 谷歌SEO和站内SEO的区别
# 酒店网站推广方案
# 百度热搜关键词价格排名
# 网站建设费怎么算钱的
# 枝江互联网智能营销推广
# 无锡专业高端网站建设
# 上海网站建设空间优化
# 运城网站建设目的
# 就能
# 鼠标
# 有哪些
# 后仍
# 输入框
# 绑定
# 并结合
# 表单
# 时计
# 设为
# 相对定位
# overflow
# 绝对定位
# css动画
# 伪元素
# js
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
精准捕获:如何在页面中监听除特定元素外的所有点击事件
支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样
使用Python高效删除Word宏并转换DOCM为DOCX格式
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项
优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践
海棠账号登录入口_登录海棠账户同步阅读记录
css卡片内容溢出如何处理_使用overflow隐藏或scroll显示内容
Pandas DataFrame 多条件优先级排序与排名
CSS如何设置hover状态颜色_hover伪类调整背景或文字颜色
Python多版本共存与虚拟环境管理深度指南
知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法
KFC套餐升级怎么获取优惠代码_KFC套餐升级活动与优惠代码获取方法
夸克浏览器图书入口 夸克手机浏览器阅读入口
新手怎么开始学化妆 零基础化妆入门教程
J*aScript实现单选按钮与关联输入框的联动禁用教程
抖音极速版最新版本 抖音极速版官方下载地址
vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法
将HTML动态表格多行数据保存到Google Sheet的教程
CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠
高德地图沿途添加点失败如何解决 高德多点规划方法
天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】
漫蛙2在线漫画入口 漫蛙正版漫画网页版直达
J*aScript异步迭代器_j*ascript异步遍历
Android Studio计算器C键逻辑错误排查与修复:条件判断优化指南
Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录
淘宝支付提示失败如何解决 淘宝支付流程优化方法
妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画
AO3官方可用镜像 Archive of Our Own网页版最新入口
Python实现多节点属性重叠度分析教程
J*aScript中在Map循环中检测并处理空数组元素
Pandas DataFrame:高效添加条件计算列
Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略
AO3访问入口汇总 AO3网页版同人作品一键直达
邮政快递单号查询入口 邮政快递物流信息在线查询入口
C++如何检测键盘输入_C++ _kbhit与_getch函数非阻塞输入
深入理解字体排版:Adobe光学字偶距与CSS字偶距的差异与实现
CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题
uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页
b站赚钱渠道_b站收益来源
Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧
必由学官方网站入口 必由学学生教师共用登录通道
Golang如何优雅处理error_Golang error处理最佳实践总结
Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
Win10双系统截图高效法 截屏快捷键速记【技巧】
QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网
12306选座如何查看座位示意图_12306座位示意图解读与使用
向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程
微信聊天记录怎么加密_微信聊天记录加密方法


2025-12-12
浏览次数:次
返回列表