新闻中心
如何使用CSS实现图标弹跳动画_keyframes与transform结合
使用@keyframes定义动画帧,结合transform的translateY和scaleY实现图标弹跳效果。通过设置多个关键帧模拟下落、触地压缩与回弹过程,如0%到40%下落,45%挤压,55%反弹,70%恢复,80%小幅度二次回弹,100%稳定。为增强真实感,加入垂直位移与Y轴缩放变形。将动画绑定至.icon元素,设置animation: bouncy-icon 1s ease-in-out infinite,可控制时长、缓动函数与循环次数。:hover或.active状态可触发非循环动画,调整参数使动作自然流畅。

想让图标实现弹跳动画,可以通过 @keyframes 定义动画帧,并结合 transform 的位移与缩放来模拟真实的弹跳效果。这种方法轻量、兼容性好,适用于按钮图标、加载提示等场景。
定义 @keyframes 动画关键帧
使用 @keyframes 指定动画过程中元素的样式变化。弹跳动画通常从上方下落并反弹几次,逐渐稳定。可以利用 transform: translateY() 控制垂直位移。
例如:
@keyframes bounce {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-20px);
}
}
这个基础版本实现了上下弹动,但缺乏真实感。为了更贴近物理效果,可增加多个关键帧模拟多次回弹。
@keyframes realistic-bounce {
0% {
transform: translateY(-100px);
}
40% {
transform: translateY(0);
}
50% {
transform: translateY(-8px);
}
60% {
transform: translateY(0);
}
80% {
transform: translateY(-4px);
}
100% {
transform: translateY(0);
}
}
应用 transform 增强视觉反馈
真实弹跳中,物体触地时会轻微压缩再恢复。可通过 scaleY 模拟挤压变形,提升动画质感。
Mureka
Mureka是昆仑万维最新推出的一款AI音乐创作工具,输入歌词即可生成完整专属歌曲。
1091
查看详情
@keyframes bouncy-icon {
0% {
transform: translateY(-80px) scaleY(1);
}
45% {
transform: translateY(0) scaleY(0.95);
}
55% {
transform: translateY(-6px) scaleY(1.05);
}
70% {
transform: translateY(0) scaleY(1);
}
85% {
transform: translateY(-2px);
}
100% {
transform: translateY(0);
}
}
将动画绑定到图标元素
选中目标图标(如一个带有类名 icon 的 或 i 标签),应用动画属性。
.icon {
display: inline-block;
animation: bouncy-icon 1s ease-in-out infinite;
}
说明:
- animation-name: 对应 @keyframes 定义的名称
- animation-duration: 控制一次动画时长,太短显得急促,太长则迟缓
-
animation-timing-function: 使用
ease-in-out或cubic-bezier()更接近重力加速度 -
animation-iteration-count: 设为
infinite可循环播放
如果只需要播放一次,比如点击触发,可改为:
.icon:hover, .icon.active {
animation: bouncy-icon 0.6s ease-out;
}
基本上就这些。合理调整位移幅度、时间和缩放比例,就能做出自然的图标弹跳效果。关键是让 transform 和 keyframes 配合得当,避免生硬跳变。以上就是如何使用CSS实现图标弹跳动画_keyframes与transform结合的详细内容,更多请关注其它相关文章!
# 几次
# 安徽省网络推广网站大全
# 南京网站优化营商环境
# 公司网站优化推广报价表
# seo零基础自学教程seo新手
# 沈阳seo建站外包
# seo站内优化广告
# seo设计不好怎么办
# seo优化月薪
# 长宁区自制网站建设
# seo网络推广团队有哪些
# css
# 就能
# 选择器
# 两种类型
# 重力加速度
# 时长
# 中不
# 绑定
# 多个
# 如何使用
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
汽车之家官方网站官网入口_汽车之家网页版直接进入
css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染
windows10怎么关闭系统提示音_windows10彻底静音设置方法
2025-2030年全球乘用车销量预测:新能源成增长主力
知音漫客正版漫画平台_知音漫客官网账号登录
Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略
Pandas DataFrame 多条件优先级排序与排名
MAC如何将整个网页截长图_MAC使用Safari的导出为PDF或第三方工具
Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】
J*aScript打印功能_j*ascript输出控制
HTML长属性值处理:表单action路径优化与代码规范应对
192.168.1.1管理中心入口 192.168.1.1路由器网页设置平台
CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠
c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换
铃兰之剑为这和平的世界希里技能组及加点推荐
动漫花园资源网使用步骤_动漫花园资源网下载流程
Promise错误处理:在catch后终止链式then执行的策略
HTML5原生日期选择器与jQuery UI:实现日期选择器的联动与程序化控制
css滚动动画效果怎么实现_使用Animate.css滚动触发动画类
CSS Grid如何控制元素对齐_align-items与justify-items组合使用
如何在CSS中使用浮动制作导航栏_float实现水平菜单
Golang指针如何与map组合使用_Golang map指针组合实践
微信网页版扫码登录入口 微信网页版二维码登录入口
J*a递归快速排序中静态变量导致数据累积问题的解决方案
凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法
J*aScript异步迭代器_j*ascript异步遍历
Node.js中HTML按钮与J*aScript函数交互的正确姿势
处理动态列数据:J*a ArrayList的正确初始化与字符累加教程
汽水音乐在线版入口_汽水音乐网页播放手册
Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
抓大鹅解压小游戏 抓大鹅摸鱼解压入口
Win11文件资源管理器卡顿怎么修 Win11重置资源管理器进程优化响应速度【修复方法】
mcjs网页版在线存档 mcjs云存档登录入口
QQ网页版官方账号入口 QQ网页版网页版登录指南
CSS响应式网页如何实现主次模块比例自适应_flex-grow与flex-shrink调整
wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法
Fabric模组开发:自定义物品与物品组的现代管理方法
解决J*aScript中重复选择项的确认对话框显示问题
J*a 递归快速排序中静态变量的状态管理与陷阱
在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析
Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践
PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比
护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?
高德地图公交到站提醒失败如何解决 高德提醒权限设置
电脑IP地址怎么查 查看本机IP地址的几种方法
Golang如何安装Swagger工具_GoSwagger文档生成环境
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
铁路12306的积分有效期是多久_铁路12306积分有效期说明
MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏


2025-11-01
浏览次数:次
返回列表
y-icon 1s ease-in-out infinite,可控制时长、缓动函数与循环次数。:hover或.active状态可触发非循环动画,调整参数使动作自然流畅。