好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

transition 过渡

transition 过渡

如果想做出细腻的过渡 效果 ,那么这个 属性 可能会满足你的需求。这个 属性 简单的来说就是用来模拟需要变化的 属性 ,从开始到结束数值之 间的 过渡。

1. 官方定义

transition 属性 是 一个 简写 属性 ,用于设置四个过渡 属性 :

transition-property transition-duration transition-timing-function transition-delay

2. 解释

transition 用来设置 一个 属性 状态从开始到结束中间这个过程的变化。它是 transition-property 、 transition-duration 、 transition-timing-function 、 transition-delay 、这四个 属性 的缩写。它们分别代表了:要使用过度动画的 属性 、过渡动画的时间、过渡动画的加速度 函数 即数值变化的快慢过程、过渡动画的延迟时间。而我们通常使用过渡 属性 完成元素过渡的这个过程一般使用 transition 。

3. 语法

   .demo   { 
     transition  :  property duration timing-function delay ; 
 } 
 

属性 值说明:

属性 值 描述 transition-property 规定设置过渡 效果 的 CSS 属性 的 名称 。 transition-duration 规定完成过渡 效果 需要多少秒或毫秒。 transition-timing-function 规定速度 效果 的速度曲线。 transition-delay 定义过渡 效果 何时开始。

4. 兼容性

IE Edge Firefox Chrome Safari Opera ios android 9+ 12+ 28+ 4+ 6.1+ 12.1+ 7+ 4.4

5. 实例

1. 当鼠标移动到元素上,使用过渡 属性 来让元素的高度变化,从而实现 一个 过渡 效果 。

    < div   class   =  " demo "   >     </ div  >  
 

   .demo   { 
     width  :  px ; 
     height  :  px ; 
     background  :   #000  ; 
     transition  :  height s ; 
 } 
  .demo  :hover   { 
     height  :  px ; 
 } 
 

效果 图:

`hover` 之后高度变化 效果 图

当鼠标移动上去改变元素的宽高值,让它们都实现过渡动画。

写法一:

   .demo   { 
     width  :  px ; 
     height  :  px ; 
     background  :   #000  ; 
     transition  :  height s,width s ; 
 } 
  .demo  :hover   { 
     width  :  px ; 
     height  :  px ; 
 } 
 

写法二:

   .demo   { 
     width  :  px ; 
     height  :  px ; 
     background  :   #000  ; 
     transition  :  all s ; 
 } 
  .demo  :hover   { 
     width  :  px ; 
     height  :  px ; 
 } 
 

效果 图:

`hover` 宽高变化 效果 图

说明:这两种方式都可以实现我们所要的过渡方式。不过这里推荐使用第一种方式。

改变上面过渡完成的速度。

   .demo   { 
     width  :  px ; 
     height  :  px ; 
     background  :   #000  ; 
     transition  :  height s ease-in,width s ease-out ; 
 } 
  .demo  :hover   { 
     width  :  px ; 
     height  :  px ; 
 } 
 

效果 图:

改变过渡完成的速度 效果 图

说明:在 transition 第三个值使用了动画 函数 ,改变了过渡过程中完成的速度,我们可以很清楚的看到他们的变化速度。

当鼠标移动上去 1s 之后开始动画。

   .demo   { 
     width  :  px ; 
     height  :  px ; 
     background  :   #000  ; 
     transition  :  height s ease-in s,width s ease-out s ; 
 } 
  .demo  :hover   { 
     width  :  px ; 
     height  :  px ; 
 } 
 

效果 图:

时间设置 效果 图

说明:我们可以看到鼠标放到元素上 1s 之后开始动画,而离开元素之后 1s 之后开始动画。

6. Tips

通过上面的实例可以知道 transition 的 属性 值配置很灵活,但是我们要遵循一定的规律,这不单是 增加 了 代码 的可读性,也符合浏览器解析规则的规律。

hover 到按钮上改变按钮的位置和背景颜色。

    < button   class   =  " demo "   >     </ button  >  
 

   .demo   { 
     width  :  px ; 
     height  :  px ; 
     line-height  :  px ; 
     border-radius  :  px ; 
     background  :   #000  ; 
     color  :  #fff  ; 
     border  : none ;    
     transition  :  background s,transform s ; 
 } 
  .demo  :hover   { 
    background  :  red ; 
    transform  :   translateY  ( -px )  ;   
 } 
 

效果 图:

改变按钮的位置和背景颜色 效果 图

7. 小结

尽量不要使用 all 来驱动过渡的 属性 ,这会使得浏览器卡顿。 尽量不要使用 margin-left 这类的 属性 ,很可能会打乱 页面 元素的位置。 推荐使用 transform 来改变元素的位置和大小。

animation 动画 ? ?transform 3D 空间转换

查看更多关于transition 过渡的详细内容...

  阅读:54次

上一篇

下一篇

第1节:CSS3简介    第2节:border 边框    第3节:borderImage 边框图片    第4节:border-radius 圆角    第5节:box-shadow 阴影    第6节:box-sizing 盒类型    第7节:gradients 渐变    第8节:text-justify 对齐    第9节:text-overflow 文字超出    第10节:text-shadow 文本阴影    第11节:word-break 文本打断    第12节:word-wrap 文本换行    第13节:letter-spacing 字间距    第14节:perspective 透视    第15节:transform 2D 空间转换    第16节:transform 3D 空间转换    第17节:transition 过渡    第18节:animation 动画    第19节:columns 字符分割    第20节:flex 弹性盒子布局    第21节:flex order 顺序    第22节:flex: grow、shrink、basis    第23节:flex-direction 排列方向    第24节:justify-content (轴内)对齐方式    第25节:flex-wrap 换行    第26节:align-items 竖直方向对齐方式    第27节:align-content    第28节:Grid 布局简介    第29节:Grid 行和列    第30节:media 媒体查询    第31节:only 元素选择    第32节:before && after 位置    第33节:nth 类型元素选择器    第34节:calc 计算属性