新闻中心

如何使用CSS实现图标弹跳动画_keyframes与transform结合

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

如何使用css实现图标弹跳动画_keyframes与transform结合

想让图标实现弹跳动画,可以通过 @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

Mureka是昆仑万维最新推出的一款AI音乐创作工具,输入歌词即可生成完整专属歌曲。

Mureka 1091 查看详情 Mureka
@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-outcubic-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栏 

搜索