首页 > 开发 > CSS > 正文

CSS3中Transform动画属性用法详解

2024-07-11 08:25:42
字体:
来源:转载
供稿:网友

css3在原来的基础上增加了变形和动画相关的属性,动画三兄弟:transform、transition和animation,通过使用这三个属性可以达到很炫酷的效果。需要注意的是这三个属性都是css3新增的属性,各大浏览器支持方面还不是特别好,使用时要特别注意浏览器的兼容性,本文重点介绍Transform的使用方法,具体内容如下

浏览器支持情况:

Internet Explorer 10、Firefox、Opera 支持 transform 属性。

Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。

Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。

Opera 只支持 2D 转换。

2D transform变换方法

•translate(x, y)方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。x, y的值可以取正负,分别表示表示向不同的方向偏移。
 •rotate(angle)方法, 表示旋转angle角度。angle为正时,按顺时针角度旋转,为负值时,元素逆时针旋转。
 •scale(x, y)方法,表示元素在x轴和y轴上的缩放比例,参数大于1时,元素放大,小于1时,元素缩小。
 •skew(x-angle,y-angle)方法,用来对元素进行扭曲变行,第一个参数是水平方向扭曲角度,第二个参数是垂直方向扭曲角度。其中第二个参数是可选参数,如果没有设置第二个参数,那么Y轴为0deg
 •matrix(n,n,n,n,n,n)方法, 以一个含六值的变换矩阵的形式指定一个2D变换,此属性值使用涉及到数学中的矩阵,感兴趣的读者可以深入了解一下,这里就不做详细介绍了。
 
下面是上面方法的演示:

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>   <html lang="en">  
  2. <head>       <meta charset="UTF-8">  
  3.     <title>transform 2D演示</title>       <style type="text/css">  
  4.         #container{                width: 700px;    
  5.             height: 120px;                 border: 1px solid blue;    
  6.             margin: 20px auto;                 padding: 20px 20px;   
  7.         }            #div1 ,#div2, #div3, #div4{   
  8.             height: 100px;                 width: 100px;    
  9.             border: 1px dashed red;                display: inline-block;   
  10.         }            #div1 div{   
  11.             height: 100px;                width: 100px;    
  12.             background: #63F7ED;                 transform:translate(20px,10px);         /* W3C标准 */   
  13.             -ms-transform:translate(20px,10px);     /* IE 9 */                -moz-transform:translate(20px,10px);    /* Firefox */   
  14.             -webkit-transform:translate(20px,10px); /* Safari 和 Chrome */                -o-transform:translate(20px,10px);      /* Opera */   
  15.         }            #div2{margin-left: 50px;}   
  16.         #div2 div{                height: 100px;   
  17.             width: 100px;                 background: #63F7ED;   
  18.             transform:rotate(45deg);        /* W3C标准 */                -ms-transform:rotate(45deg);    /* IE 9 */   
  19.             -moz-transform:rotate(45deg);   /* Firefox */                -webkit-transform:rotate(45deg); /* Safari 和 Chrome */   
  20.             -o-transform:rotate(45deg);         /* Opera */            }   
  21.         #div3{margin-left: 100px;}            #div3 div{   
  22.             height: 100px;                width: 100px;    
  23.             background: #63F7ED;                transform:scale(2,0.5);         /* W3C标准 */   
  24.             -ms-transform:scale(2,0.5);     /* IE 9 */                -moz-transform:scale(2,0.5);    /* Firefox */   
  25.             -webkit-transform:scale(2,0.5); /* Safari 和 Chrome */                -o-transform:scale(2,0.5);      /* Opera */   
  26.         }            #div4{margin-left: 100px;}   
  27.         #div4 div{                height: 100px;   
  28.             width: 100px;                 background: #63F7ED;   
  29.             transform:skew(30deg,-20deg);       /* W3C标准 */                -ms-transform:skew(30deg,-20deg);   /* IE 9 */   
  30.             -moz-transform:skew(30deg,-20deg);  /* Firefox */                -webkit-transform:skew(30deg,-20deg); /* Safari 和 Chrome */   
  31.             -o-transform:skew(30deg,-20deg);        /* Opera */            }   
  32.        </style>  
  33. </head>   <body>  
  34. <div id="container">       <div id="div1">  
  35.         <div>translate</div>       </div>  
  36.     <div id="div2">           <div>rotate</div>  
  37.     </div>       <div id="div3">  
  38.         <div>scale</div>       </div>  
  39.     <div id="div4">           <div>skew</div>  
  40.     </div>   </div>     
  41. </body>   </html>  
  42.   
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表