523 字
3 分钟
transition属性制作CSS交互动画
2026-03-15
无标签

动画在生活中很常见,手机的APP打开就是从本来规定的图标形状变化到屏幕全屏的形状,中间时间的所有变化都是动画。在手机上就成为过渡动画,这个动画的本质目的其实就是让人脑有一个来回过程的显示,更便于其理解。这种理解的本意就是知其何来,知其何去。虽然有不少的人会觉得这种动画在Windows,Linux系统上就是增加硬件的负担,降低硬件性能,但是也是因为有来有回,而且动画使用特定的曲线让苹果在桌面系统中获得一席之地。

transition属性的属性值#

  • transition-property:参与变换的属性(默认值:/
  • transition-duration:变化的时间长度(默认值:0
  • transition-timing-function:过渡动画的贝塞尔曲线设置(默认值:ease
  • transition-delay:动画开始之前的等待时间(默认值:0

效果展示#

这几个属性便可以分开去写(效果:鼠标放在图形上时,正方形在1秒之内使用ease的贝塞尔曲线值转变成圆形):

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.box {
width: 100px;
height: 100px;
background-color: tomato;
margin: 50px auto;
transition-property: border-radius;
transition-duration: 1s;
transition-timing-function: ease;
transition-delay: 0s;
}
.box:hover {
border-radius: 50%;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>

将其整合成transtion一个属性:

格式:

transtion: 变化属性 变化时间 变化时使用的贝塞尔曲线 开始动画前的等待时间, 变化属性 变化时间 变化时使用的贝塞尔曲线 开始动画前的等待时间

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.box {
width: 100px;
height: 100px;
background-color: tomato;
margin: 50px auto;
transition: border-radius 1s ease;
}
.box:hover {
border-radius: 50%;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>

同时操作两个属性一起变化(效果:鼠标放在图形上时,正方形在1秒之内使用ease的贝塞尔曲线值转变成圆形,同时宽度增加100px):

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.box {
width: 100px;
height: 100px;
background-color: tomato;
margin: 50px auto;
transition: all 1s ease;
}
.box:hover {
width: 200px;
border-radius: 50%;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
transition属性制作CSS交互动画
https://ivoinkwell.xyz/posts/web-frontend/css-transition/
作者
Ivo
发布于
2026-03-15
许可协议
CC BY-NC-SA 4.0