【前端】2D變形transform

2D變形transform

transform是CSS3中具備顛覆性的特徵之一,能夠實現元素的位移、旋轉、傾斜、縮放,甚至支持矩陣方式,配合過渡和即將學習的動畫知識,能夠取代大量以前只能靠Flash才能夠實現的效果。css

變形轉換 transform學習

移動 translate(x, y)

translate 移動平移的意思動畫

translate(50px,50px);

​ 使用translate方法來將文字或圖像在水平方向和垂直方向上分別垂直移動50像素。code

能夠改變元素的位置,x、y可爲負值;orm

translate(x,y)水平方向和垂直方向同時移動(也就是X軸和Y軸同時移動)
 translateX(x)僅水平方向移動(X軸移動)
 translateY(Y)僅垂直方向移動(Y軸移動)
.box {
  width: 499.9999px;
  height: 400px;
  background: pink;
  position: absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);  /* 走的本身的一半 */
}

讓定位的盒子水平居中圖片

縮放 scale(x, y)

transform:scale(0.8,1);

能夠對元素進行水平和垂直方向的縮放。該語句使用scale方法使該元素在水平方向上縮小了20%,垂直方向上不縮放。it

scale(X,Y)使元素水平方向和垂直方向同時縮放(也就是X軸和Y軸同時縮放)
scaleX(x)元素僅水平方向縮放(X軸縮放)
scaleY(y)元素僅垂直方向縮放(Y軸縮放)

scale()的取值默認的值爲1,當值設置爲0.01到0.99之間的任何值,做用使一個元素縮小;而任何大於或等於1.01的值,做用是讓元素放大io

旋轉 rotate(deg)

能夠對元素進行旋轉,正值爲順時針,負值爲逆時針;form

transform:rotate(45deg);

注意單位是 deg 度數class

transform-origin能夠調整元素轉換變形的原點

div{transform-origin: left top;transform: rotate(45deg); }  /* 改變元素原點到左上角,而後進行順時旋轉45度 */

若是是4個角,能夠用 left top這些,若是想要精確的位置, 能夠用 px 像素。

div{transform-origin: 10px 10px;transform: rotate(45deg); }  /* 改變元素原點到x 爲10  y 爲10,而後進行順時旋轉45度 */

案例旋轉楚喬傳

div {
            width: 250px;
            height: 170px;
            border: 1px solid pink;
            margin: 200px auto;
            position: relative;

        }
        div img {
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
            transition: all 0.6s;
            transform-origin: top right;
        
        }
        div:hover img:nth-child(1) {  /* 鼠標通過div  第一張圖片旋轉 */
            transform: rotate(60deg);
        }
        div:hover img:nth-child(2) {  
            transform: rotate(120deg);
        }
        div:hover img:nth-child(3) {  
            transform: rotate(180deg);
        }
        div:hover img:nth-child(4) {  
            transform: rotate(240deg);
        }
        div:hover img:nth-child(5) {  
            transform: rotate(300deg);
        }
        div:hover img:nth-child(6) {  
            transform: rotate(360deg);
        }

傾斜 skew(deg, deg)

transform:skew(30deg,0deg);

該實例經過skew方法把元素水平方向上傾斜30度,處置方向保持不變。

能夠使元素按必定的角度進行傾斜,可爲負值,第二個參數不寫默認爲0。

相關文章
相關標籤/搜索