CSS 过渡怎么配合 transform-origin 改变缩放旋转基点

落瑶姑娘_3552

落瑶姑娘_3552

2026-10-26

975人浏览

原创

transform-origin 决定缩放旋转基点,transition 仅控制变化过程;必须在常态样式中预先设定 transform-origin,与 transform 初始值共存,且所有变换需合并写入单条 transform 声明。

css 过渡怎么配合 transform-origin 改变缩放旋转基点

过渡(transition)本身不直接控制缩放或旋转的基点,它只负责“属性变化过程”的平滑呈现;真正决定缩放、旋转从哪里开始的,是 transform-origin。两者配合的关键在于:先用 transform-origin 固定支点,再用 transform(含 scale() 或 rotate())触发变化,最后靠 transition 让这个变化动起来。

必须把 transform-origin 写在常态选择器里

它不是动画中的“变量”,而是元素变换的静态锚点,应和 transform 初始值一起定义在基础样式中,否则 hover 或动画过程中修改它,会引发视觉跳变:

  • ✅ 正确写法:元素默认就锚定左上角,hover 时绕该点放大

.btn {
  transform-origin: 0 0;
  transform: scale(1);
  transition: transform 0.2s ease-out;
}
.btn:hover {
  transform: scale(1.15);
}

Wechat Article Html
Wechat Article Html

将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。

下载
  • ❌ 错误写法:hover 里才设 origin —— 浏览器会先按默认 center 缩放一帧,再切到 0 0,造成抖动

缩放方向由 transform-origin + scale 方向共同决定

想实现“从左向右展开”“从上向下铺开”这类定向动画,不能只靠 scaleX 或 scaleY,必须配对设置原点:

  • transform-origin: left center + scaleX(0) → scaleX(1) → 左侧固定、向右伸展
  • transform-origin: top center + scaleY(0) → scaleY(1) → 顶部固定、向下展开
  • transform-origin: bottom right + scale(0) → scale(1) → 右下角原地放大

旋转动画中 origin 错位会导致“飞走”,过渡无法掩盖

比如一个绝对定位的提示框:top: -10px; left: 50%,再加 rotate(10deg)。若没设 transform-origin,它会绕自身中心转,结果整个框视觉偏移——因为旋转后中心还在原位,但边缘已甩出去。

  • 要让它“绕顶部中心转”,就写 transform-origin: 50% 0
  • 要让它“绕左上角转”,就写 transform-origin: 0 0
  • 过渡只需管 transform 的变化,origin 必须提前锁定

合并写法更安全,避免 origin 被覆盖

当同时使用 translate、scale、rotate 时,所有变换必须写在同一个 transform 声明里,否则后写的会完全替换前面的(包括 origin 效果):

  • ✅ transform: translate(-50%, -50%) rotate(45deg) scale(1.1)
  • ❌ 拆成多条声明,如 transform: translate(-50%, -50%) 和 transform: rotate(45deg) —— 第二条会丢掉位移

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

html css

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2643

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5743

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6730

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6438

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

923

5

css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

5036

6

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

1097

5

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.28

1958

6

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

2023.08.01

3866

7

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 228人学习