讲师中心 微信公众号
AI工具推荐 视频效率加速

css动画如何实现弹性效果_css动画缓动曲线用法

夜伟酱_1405

夜伟酱_1405

发布时间:2026-01-27 14:04:00

|

734人浏览过

|

来源于php中文网

原创

用cubic-bezier(0.68,-0.55,0.27,1.55)可实现可控弹性动画,其负y1值制造初始下拉,超1的y2值产生回弹,配合单次scale关键帧与0.4s–0.8s时长达成自然效果。

css动画如何实现弹性效果_css动画缓动曲线用法

用 cubic-bezier() 实现弹性效果的关键参数

纯 CSS 实现弹性(bounce)动画,核心不是靠多层关键帧,而是用自定义的 cubic-bezier() 缓动函数模拟物理回弹。浏览器原生的 ease-in-out 或 spring()(实验性)都不够精准;真正可控、复用性强的方式是手写贝塞尔值。

典型弹性曲线需满足:初始加速快 → 超调(overshoot)→ 多次衰减回弹 → 最终静止。推荐起手参数:cubic-bezier(0.68, -0.55, 0.27, 1.55) —— 这组值在多数尺寸和时长下能稳定出弹性感,负的 y1 和大于 1 的 y2 是实现“拉伸后反弹”的必要条件。

  • 第一对控制点 (x1, y1) 中 y1 < 0 让动画起始阶段“向下猛拉”(视觉上像压弹簧)
  • 第二对 (x2, y2) 中 y2 > 1 使动画末段冲过目标位置再折返,形成回弹
  • 避免 x1 > x2(如 cubic-bezier(0.8, 0, 0.2, 1)),这会导致时间轴倒流,动画卡顿或跳变

@keyframes 配合 cubic-bezier() 的最小可行写法

不要试图在 @keyframes 里用多个 transform: scale() 关键帧模拟弹性——那会显得生硬且难调。正确做法是:只设起始和结束状态,把“弹性感”全交给 animation-timing-function。

button {
  animation: pulse 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}
@keyframes pulse {
  from { transform: scale(1); }
  to { transform: scale(1.15); }
}

注意:animation-duration 建议控制在 0.4s–0.8s。太短(如 0.2s)会让回弹来不及展开;太长(如 1.2s)则失去“弹性”的瞬时反馈感。若需多次弹跳,应叠加多个独立动画,而非延长单次 duration。

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

Plan Dubai Travel — Flights, Hotels, Burj Khalifa, Desert Safari, Malls & Itineraries
Plan Dubai Travel — Flights, Hotels, Burj Khalifa, Desert Safari, Malls & Itineraries

规划您的迪拜之旅 — 哈利法塔观景、沙漠探险、迪拜购物中心购物、棕榈岛度假村及黄金市场砍价。还提供支持...

下载

为什么 spring() 不建议在生产环境直接用

spring(mass, stiffness, damping, initialVelocity) 是 Chrome 125+ 和 Safari 17.4+ 支持的实验性函数,写起来确实直观,比如 spring(1, 200, 20, 0)。但它有三个硬伤:

  • Firefox 全系不支持,且无明确落地时间表
  • 参数含义与物理公式强耦合,mass=1 并不等于“轻”,实际表现受元素尺寸、父容器渲染上下文影响极大
  • 当动画被 JavaScript 中断(如用户快速连续点击)、或触发 will-change 切换时,容易出现回弹中断、残留位移等不可预测行为

除非项目明确限定 Chromium 内核 + 可接受降级为 ease-out,否则优先选 cubic-bezier()。

调试弹性曲线的实用技巧

别靠猜。打开 Chrome DevTools → Elements → Styles → 找到 animation-timing-function → 点击右侧贝塞尔图标,拖动控制点实时预览。重点关注两个现象:

  • 曲线是否穿过 (0,0) 和 (1,1)?没穿过说明动画不会从 0% 开始、也不会停在 100%,会偏移
  • 曲线是否在 y=1 上方有明显凸起?这是回弹的视觉来源;如果只有轻微上翘,弹性会弱得几乎察觉不到
  • 导出调试好的值后,用 calc() 封装可维护变量:--elastic: cubic-bezier(0.68, -0.55, 0.27, 1.55); animation-timing-function: var(--elastic);

真正难的不是写出第一个弹性动画,而是让同一套曲线在按钮、卡片、加载指示器上都保持协调的“重量感”。这意味着你得为不同组件微调 y1/y2 —— 比如小图标适合更激进的 y1: -0.7,而模态框入场可能需要压低 y2: 1.3 避免晃动感过强。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

2191

2025.08.06

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

417

2026.01.26

chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

2506

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4439

2023.11.06

Chrome开启无痕模式
Chrome开启无痕模式

本专题整合了Chrome无痕模式开启相关内容,阅读专题下面的文章了解更多详细教程。

3207

2026.03.24

function是什么
function是什么

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果。本专题为大家提供function是什么的相关的文章、下载、课程内容,供大家免费下载体验。

2600

2023.08.04

js函数function用法
js函数function用法

js函数function用法有:1、声明函数;2、调用函数;3、函数参数;4、函数返回值;5、匿名函数;6、函数作为参数;7、函数作用域;8、递归函数。本专题提供js函数function用法的相关文章内容,大家可以免费阅读。

454

2023.10.07

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

120

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

40

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5.7万人学习

CSS教程
CSS教程

共754课时 | 94.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn