CSS transition详解

我们在做项目时,在进行开发 页面元素的过渡效果时,经常会用到 CSS 的 transition 属性,下面针对该属性进行详细讲解:

 

先举个例子,我们经常会用到:

.demo {
  width: 100px;
  height: 100px;
  background: #9370DB;
  transiton: width .5s
}
.demo:hover {
  width: 300px;
}

此时, .demo 元素在鼠标经过时, width 属性由原来的 100px 变为 300px, transition: width  .5s 表示为 ‘width’ 属性添加 0.5s 的过渡时间,其实 transition 属性 共有四个参数,此处用到了两个, 其余两个元素默认为缺省值。

 

具体参数如下:

参数一: transition-property, 指定需要过渡效果的 CSS 属性, 也就是上面的例子里的 width 属性。、

参数二: transition-duration, 指定过渡效果需要指定多少秒或毫秒才能完成, 也就是上面例子里的 0.5s, 即 0.5 秒完成过渡效果。

参数三: transition-timing-function, 指定 transition 效果的转速曲线, 默认缺省为 ease,具体可选参数如下:

描述
linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

参数四: transition-delay, 定义 transition 效果开始的时候, 这个相对用的频率较低。

 

到这里,我们可以给出一个完整的 transition 语句:

transition: width 0.5s ease 0.5s

即 0.5s 后 对 width 属性进行过渡,过渡效果慢速开始,然后变快,持续时间 0.5s。

 

这里再针对 cubic-bazier(贝泽尔曲线)进行讲解,https://cubic-bezier.com/, 我们可以借助现在预览曲线工具,根据需要设定值,

 

调节 红、绿两个按钮,调整曲线的弯度, 曲线越陡过渡速度越快,相反曲线越平稳,过渡速度越慢。

 

通过自定义的 贝泽尔曲线,实现更多我们想要的过渡效果,也可以通过 在线工具显示与 预设值得对比,更直观得调整我们想要的效果。

 

 

posted @ 2021-06-29 20:57  几行  阅读(2421)  评论(0编辑  收藏  举报