0

0

CSS如何实现具有弹性的弹跳动效_利用cubic-bezier自定义速度曲线css

P粉602998670

P粉602998670

发布时间:2026-03-03 14:20:01

|

921人浏览过

|

来源于php中文网

原创

cubic-bezier() 是纯 css 实现真实弹跳动效的唯一可行路径,因其能通过自定义控制点使速度中途反向(y>1 或 y

css如何实现具有弹性的弹跳动效_利用cubic-bezier自定义速度曲线css

为什么 cubic-bezier() 是弹跳动效的唯一可行路径

纯 CSS 实现真实弹跳(bouncing),不能靠 animation-timing-function: ease-out 或重复 keyframes 模拟——它只是减速,没有回弹、过冲、衰减。真正有物理感的弹跳必须用自定义贝塞尔曲线,因为只有 cubic-bezier() 能让速度在动画中途“反向”(y 值 > 1 或

浏览器原生支持的 timing function 中,只有 cubic-bezier() 允许控制点超出 [0,1] 范围(如 cubic-bezier(0.2, 0.8, 0.4, 1.4)),这是实现“冲过头再弹回”的关键。

常见错误:直接抄网上“弹跳贝塞尔值”却不验证是否符合 CSS 规范——CSS 要求 x1/x2 ∈ [0,1],但 y1/y2 可以任意(现代浏览器都支持)。若误把 y1 写成 1.8 但 x1 写成 -0.1,会直接被忽略并退化为 ease

怎么写出一个可用的弹跳 cubic-bezier() 曲线

别从头手调四个参数。用工具辅助生成,再微调。核心逻辑是:前半段快速下落 → 底部猛烈过冲 → 多次小幅回弹 → 最终静止。

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

  • 推荐起始模板:cubic-bezier(0.34, 1.56, 0.64, 1)(基础单次弹跳)
  • 要更“松软”:降低 y1(如 1.2),提高 y2(如 1.1)→ 回弹更缓
  • 要更“硬脆”:提高 y1(如 1.8),降低 y2(如 0.8)→ 首次过冲更猛,后续衰减快
  • 想加第二次小弹跳:把 y2 设为略大于 1(如 1.05),让曲线在末尾轻微上扬

实操建议:在 Chrome DevTools 的 animation 面板里实时拖拽贝塞尔手柄,观察曲线形状和预览效果;不要只看数值。

transform: translateY() + cubic-bezier() 的典型用法与坑

弹跳动效几乎总是作用于 transform,而非 topmargin——前者触发合成层,性能好;后者触发布局重排,一卡就废。

Pebblely
Pebblely

AI产品图精美背景添加

下载

常见错误现象:animation 播放一次后不重置位置,导致第二次点击从错误起点开始弹。

  • 务必在动画结束时显式归位,例如用 transform: translateY(0) 写在 @keyframesto 或 100%
  • 如果用 animation-fill-mode: forwards,确保 to 状态是最终静止态(不是弹跳中途某帧)
  • 移动端要注意:iOS Safari 对超范围 y 值(如 y1=2.1)兼容性略差,稳妥起见 y1 控制在 ≤1.9,y2 ≥0.7
  • 避免和 transition 混用:同时存在时,transition 会覆盖 animation 的 timing function

多段弹跳(比如三次回弹)还能用纯 CSS 吗

能,但别写三段 @keyframes 硬凑。复杂弹跳应拆解为多个连续动画,用 animation-delay 错开,并逐段调整 cubic-bezier() 参数模拟衰减。

示例思路(单次点击触发三段弹跳):

button:hover {
  animation: 
    bounce-1 0.6s cubic-bezier(0.34, 1.56, 0.64, 1),
    bounce-2 0.4s cubic-bezier(0.22, 0.8, 0.56, 1.2) 0.6s,
    bounce-3 0.25s cubic-bezier(0.18, 0.7, 0.42, 1.05) 1.0s;
}

关键点:

  • 每段动画的 transform 起始值必须承接上一段的结束值(靠 animation-fill-mode: forwards 保证)
  • 第二、三段的 cubic-bezier() y1 逐级降低(1.2 → 1.05),体现能量衰减
  • 总时长 = 各段时长 + 延迟之和,别漏算

真正难的不是写出来,而是让每次回弹的幅度、节奏看起来自然——这取决于你调参时有没有盯着真实弹簧或篮球录像看两分钟。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

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

1017

2023.08.11

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

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

814

2023.11.06

function是什么
function是什么

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

495

2023.08.04

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

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

166

2023.10.07

margin在css中是啥意思
margin在css中是啥意思

在CSS中,margin是一个用于设置元素外边距的属性。想了解更多margin的相关内容,可以阅读本专题下面的文章。

461

2023.12.18

css3transition
css3transition

css3transition属性用于指定如何从一个CSS样式过渡到另一个CSS样式,本专题为大家提供transition相关的文章、相关下载和相关课程,大家可以免费体验。

261

2023.06.27

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

65

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

57

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

44

2026.02.28

热门下载

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

精品课程

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

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 38.9万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号