分享

动画效果-变形

 时间剧毒 2019-06-10

transform:2D变形:

通过 CSS3 转换,我们能够对元素进行移动、缩放、转动、拉长或拉伸。转换方法:translate()/rotate()/scale()/skew()/matrix()

  • none 定义不进行转换。

  • translate(x,y) 定义 2D 平移转换。

  • translateX(x) 定义转换,只是用 X 轴的值。

  • translateY(y) 定义转换,只是用 Y 轴的值。



  • scale(x,y) 定义 2D 缩放转换。

  • scaleX(x) 通过设置 X 轴的值来定义缩放转换。

  • scaleY(y) 通过设置 Y 轴的值来定义缩放转换。



  • rotate(angle) 定义 2D 旋转,在参数中规定角度。

  • 补充1.角度也可以使用弧度单位:rad


  • skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。

  • kewX(angle) 定义沿着 X 轴的 2D 倾斜转换。

  • skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。



  • matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。

  • 变形矩阵功能很强大,但是相对比较复杂,涉及到复杂的数学计算,在本章中暂不作详细讲解。


  • transform-origin:改变元素变形的基准点

    • 像素/百分比

    • X轴:left/right/center

    • Y轴:top/bottom/center/



div{

width: 300px;

height: 100px;

margin-top:50px;

margin-left:50px; 

padding:0px; 

background: red;

}

#div11,#div22,#div33,#div44,#div55,#div66{

margin-left: 0px;

background: blue;

}

#div11:hover{

transform:translate(30px,30px)

}

#div22:hover{

transform:scale(0.8,0.5);

transform-origin: left top;

}

#div33:hover{

transform:rotate(30deg);

/*transform-origin: left top;*/

/*transform-origin: 30px 30px;*/

transform-origin: 30% 30%;

}

#div44:hover{

/*transform: skewX(30deg);*/

/*transform: skewY(30deg);*/

transform: skew(30deg,45deg);

}

#div55:hover{

transform: matrix(1,0.3,0,1,0,0);

}

#div66:hover{

transform:scale(0.8,0.5) rotate(30deg);

}



transform:3D变形:

3D变形可以近似理解为沿着Z轴<移动元素,使得元素更加靠近或者远离你,从而使元素看起来变得更大或更小。/p>

  • translate3d(x,y,z) 定义 3D 转换。

  • translateY(y) 定义转换,只是用 Y 轴的值。

  • translateZ(z) 定义 3D 转换,只是用 Z 轴的值。

  • translateX(x) 定义转换,只是用 X 轴的值。



  • scale3d(x,y,z) 定义 3D 缩放转换。

  • scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。

  • scaleX(x) 通过设置 X 轴的值来定义缩放转换。

  • scaleY(y) 通过设置 Y 轴的值来定义缩放转换。



  • rotate3d(x,y,z,angle) 定义 3D 旋转。

  • rotateX(angle) 定义沿着 X 轴的 3D 旋转。

  • rotateY(angle) 定义沿着 Y 轴的 3D 旋转。

  • rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。



  • matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。

#div0{

width: 300px;

margin: 30px;

border: 2px solid red;

perspective:1000px;

background: red;

}

#div1,#div2,#div3{

width: 200px;

height: 150px;

font-size: 50px;

margin: 30px auto;

background: green;

}

#div1:hover{

/* transform: translate3d(0,0,-300px);*/

transform:translateZ(-500px);

}

#div2:hover{

transform: rotate3d(0,1,0,45deg);

transform-origin:right;

}

#div3:hover{

transform: scaleZ(2) rotateX(60deg);

transform-origin:top;

}

body{

perspective:1000px;

}

#div0:hover{

transform:rotateX(45deg);

-webkit-transform:rotateX(45deg);

-moz-transform:rotateX(45deg);

-o-transform:rotateX(45deg);

-ms-transform:rotateX(45deg);

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约