1. 程式人生 > >css transform旋轉屬性

css transform旋轉屬性

元素 function 情況 ott meta 圖形 tin 介紹 form

將以下代碼復制到本地就可以看到效果:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>transform屬性</title>
</head>
<style type="text/css">
     .oneX{
        border: 2px crimson solid;
        background-color: chartreuse;
        width: 100px;
        height: 100px;
         transform: rotateX(0deg);
         
-moz-transform: rotateX(0deg); -webkit-transform: rotateX(0deg); -ms-transform: rotateX(0deg); } .oneY{ border: 2px crimson dashed; background-color: chartreuse; width: 100px; height: 100px; transform: rotateY(0deg);
-moz-transform: rotateY(0deg); -webkit-transform: rotateY(0deg); -ms-transform: rotateY(0deg); } .one{ border: 2px crimson dashed; background-color: chartreuse; width: 100px; height: 100px; } .oneO{ border: 2px crimson dashed; background
-color: chartreuse; width: 100px; height: 100px; margin: 150px; transform-origin: 0 0; -webkit-transform-origin: 0 0; -ms-transform-origin: 0 0; -moz-transform-origin: 0 0; -webkit-transform-style: preserve-3d; } .one3D{ border: 2px crimson dashed; background-color: chartreuse; width: 100px; height: 100px; margin: 150px; transform-origin: 50% 50% 75px; -webkit-transform-origin: 50% 50% 75px; -ms-transform-origin: 50% 50% 75px; -moz-transform-origin: 50% 50% 75px; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -moz-transform-style: preserve-3d; -ms-transform-style: preserve-3d; box-shadow: 10px 10px 5px #888888; } .one2D{ border: 2px crimson dashed; background-color: chartreuse; width: 100px; height: 100px; margin: 150px; transform-origin: 50% 50% 75px; -webkit-transform-origin: 50% 50% 75px; -ms-transform-origin: 50% 50% 75px; -moz-transform-origin: 50% 50% 75px; -webkit-transform-style: flat; transform-style: flat; -moz-transform-style: flat; -ms-transform-style: flat; box-shadow: 10px 10px 5px #888888; } </style> <body> <p>只有在transform屬性存在情況下transform-style和transform-origin才會有效果。</p> <p>transform屬性介紹:</p> <table> <tbody><tr> <th style="width:25%">值</th> <th>描述</th> </tr> <tr> <td>none</td> <td>定義不進行轉換。</td> </tr> <tr> <td>matrix(<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>)</td> <td>定義 2D 轉換,使用六個值的矩陣。</td> </tr> <tr> <td>matrix3d(<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>,<i>n</i>)</td> <td>定義 3D 轉換,使用 16 個值的 4x4 矩陣。</td> </tr> <tr> <td>translate(<i>x</i>,<i>y</i>)</td> <td>定義 2D 轉換。</td> </tr> <tr> <td>translate3d(<i>x</i>,<i>y</i>,<i>z</i>)</td> <td>定義 3D 轉換。</td> </tr> <tr> <td>translateX(<i>x</i>)</td> <td>定義轉換,只是用 X 軸的值。</td> </tr> <tr> <td>translateY(<i>y</i>)</td> <td>定義轉換,只是用 Y 軸的值。</td> </tr> <tr> <td>translateZ(<i>z</i>)</td> <td>定義 3D 轉換,只是用 Z 軸的值。</td> </tr> <tr> <td>scale(<i>x</i>[,<i>y</i>]?) </td> <td>定義 2D 縮放轉換。</td> </tr> <tr> <td>scale3d(<i>x</i>,<i>y</i>,<i>z</i>)</td> <td>定義 3D 縮放轉換。</td> </tr> <tr> <td>scaleX(<i>x</i>)</td> <td>通過設置 X 軸的值來定義縮放轉換。</td> </tr> <tr> <td>scaleY(<i>y</i>)</td> <td>通過設置 Y 軸的值來定義縮放轉換。</td> </tr> <tr> <td>scaleZ(<i>z</i>)</td> <td>通過設置 Z 軸的值來定義 3D 縮放轉換。</td> </tr> <tr> <td>rotate(<i>angle</i>)</td> <td>定義 2D 旋轉,在參數中規定角度。</td> </tr> <tr> <td>rotate3d(<i>x</i>,<i>y</i>,<i>z</i>,<i>angle</i>)</td> <td>定義 3D 旋轉。</td> </tr> <tr> <td>rotateX(<i>angle</i>)</td> <td>定義沿著 X 軸的 3D 旋轉。</td> </tr> <tr> <td>rotateY(<i>angle</i>)</td> <td>定義沿著 Y 軸的 3D 旋轉。</td> </tr> <tr> <td>rotateZ(<i>angle</i>)</td> <td>定義沿著 Z 軸的 3D 旋轉。</td> </tr> <tr> <td>skew(<i>x-angle</i>,<i>y-angle</i>)</td> <td>定義沿著 X 和 Y 軸的 2D 傾斜轉換。</td> </tr> <tr> <td>skewX(<i>angle</i>)</td> <td>定義沿著 X 軸的 2D 傾斜轉換。</td> </tr> <tr> <td>skewY(<i>angle</i>)</td> <td>定義沿著 Y 軸的 2D 傾斜轉換。</td> </tr> <tr> <td>perspective(<i>n</i>)</td> <td>為 3D 轉換元素定義透視視圖。</td> </tr> </tbody></table> <p>實例:</p> <p>X軸旋轉:</p> <div class="oneX"></div> <p>Y軸旋轉:</p> <div class="oneY"></div> <p>平面旋轉:</p> <div class="one"></div> <p>transform-origin定位旋轉的錨點:就是設置圖形按照哪一個點旋轉。舉例:把一張白紙使用冒頂釘在墻上,轉動白紙,白紙圍繞釘子轉,釘子的位置就是錨點。</p> <table class="reference"> <tbody><tr> <th style="width:25%">值</th> <th>描述</th> </tr> <tr> <td>x-axis</td> <td> <p>定義視圖被置於 X 軸的何處。可能的值:</p> <ul class="listintable"> <li>left</li> <li>center</li> <li>right</li> <li><i>length</i></li> <li><i>%</i></li> </ul> </td> </tr> <tr> <td>y-axis</td> <td> <p>定義視圖被置於 Y 軸的何處。可能的值:</p> <ul class="listintable"> <li>top</li> <li>center</li> <li>bottom</li> <li><i>length</i></li> <li><i>%</i></li> </ul> </td> </tr> <tr> <td>z-axis</td> <td> <p>定義視圖被置於 Z 軸的何處。可能的值:</p> <ul class="listintable"> <li><i>length</i></li> </ul> </td> </tr> </tbody></table> <div class="oneO"></div> <p>transform-style設置旋轉模式為2D還是3D。3d效果必須采用transform支持3d的方法,否則將會是2D效果。</p> <table > <tbody><tr> <th style="width:25%">值</th> <th>描述</th> </tr> <tr> <td>flat</td> <td>表示所有子元素在2D平面呈現。</td> </tr> <tr> <td>preserve-3d</td> <td>表示所有子元素在3D空間中呈現。</td> </tr> </tbody></table> <div class="one3D">3D</div> <div class="one2D">2D</div> </body> <script type="text/javascript"> var divX = document.getElementsByClassName("oneX")[0]; var divY = document.getElementsByClassName("oneY")[0]; var div = document.getElementsByClassName("one")[0]; var divO = document.getElementsByClassName("oneO")[0]; var div3D = document.getElementsByClassName("one3D")[0]; var div2D = document.getElementsByClassName("one2D")[0]; var i=0; setInterval(function () { i+=5; divX.style.transform="rotateX("+i+"deg)"; divY.style.transform="rotateY("+i+"deg)"; div.style.transform="rotate("+i+"deg)"; divO.style.transform="rotate("+i+"deg)"; div3D.style.transform="rotate3d(75,75,75,"+i+"deg)"; div2D.style.transform="rotate("+i+"deg)"; if(i==720){ i=0; } /*transform: rotateY(0deg); -moz-transform: rotateY(0deg); -webkit-transform: rotateY(0deg); -ms-transform: rotateY(0deg);*/ },100); </script> </html>

transform屬性

只有在transform屬性存在情況下transform-style和transform-origin才會有效果。

transform屬性介紹:

描述
none 定義不進行轉換。
matrix(n,n,n,n,n,n) 定義 2D 轉換,使用六個值的矩陣。
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定義 3D 轉換,使用 16 個值的 4x4 矩陣。
translate(x,y) 定義 2D 轉換。
translate3d(x,y,z) 定義 3D 轉換。
translateX(x) 定義轉換,只是用 X 軸的值。
translateY(y) 定義轉換,只是用 Y 軸的值。
translateZ(z) 定義 3D 轉換,只是用 Z 軸的值。
scale(x[,y]?) 定義 2D 縮放轉換。
scale3d(x,y,z) 定義 3D 縮放轉換。
scaleX(x) 通過設置 X 軸的值來定義縮放轉換。
scaleY(y) 通過設置 Y 軸的值來定義縮放轉換。
scaleZ(z) 通過設置 Z 軸的值來定義 3D 縮放轉換。
rotate(angle) 定義 2D 旋轉,在參數中規定角度。
rotate3d(x,y,z,angle) 定義 3D 旋轉。
rotateX(angle) 定義沿著 X 軸的 3D 旋轉。
rotateY(angle) 定義沿著 Y 軸的 3D 旋轉。
rotateZ(angle) 定義沿著 Z 軸的 3D 旋轉。
skew(x-angle,y-angle) 定義沿著 X 和 Y 軸的 2D 傾斜轉換。
skewX(angle) 定義沿著 X 軸的 2D 傾斜轉換。
skewY(angle) 定義沿著 Y 軸的 2D 傾斜轉換。
perspective(n) 為 3D 轉換元素定義透視視圖。

實例:

X軸旋轉:

Y軸旋轉:

平面旋轉:

transform-origin定位旋轉的錨點:就是設置圖形按照哪一個點旋轉。舉例:把一張白紙使用冒頂釘在墻上,轉動白紙,白紙圍繞釘子轉,釘子的位置就是錨點。

描述
x-axis

定義視圖被置於 X 軸的何處。可能的值:

  • left
  • center
  • right
  • length
  • %
y-axis

定義視圖被置於 Y 軸的何處。可能的值:

  • top
  • center
  • bottom
  • length
  • %
z-axis

定義視圖被置於 Z 軸的何處。可能的值:

  • length

transform-style設置旋轉模式為2D還是3D。3d效果必須采用transform支持3d的方法,否則將會是2D效果。

描述
flat 表示所有子元素在2D平面呈現。
preserve-3d 表示所有子元素在3D空間中呈現。
3D 2D

css transform旋轉屬性