当前位置:   article > 正文

CSS-transform 平面/空间(移动、旋转、缩放、过渡)略解以及示例_transform 移动

transform 移动

目录

一、transform基础介绍_平面移动

二、transform基础介绍_平面旋转

三、transform基础介绍_平面缩放

四、transform基础介绍_空间移动(3D转换)

五、transform基础介绍_空间旋转(3D转换) 

1、三轴旋转

2、左手法则 

3、自定义旋转轴

六、transform基础介绍_空间缩放(3D转换) 


一、transform基础介绍_平面移动

transform: translate(水平移动距离,垂直移动距离);        //距离的取值可以是数字或百分比

  • 向右向下为正数,向左向上为负数
  • 括号内只填一个值,默认为水平方向移动的距离
  • transform:translateX()  水平移动距离
  • transform:translateY()  垂直移动距离

transition 过渡效果(简单介绍)

transition: all 1s;        //表示该元素的所有属性改变效果延时1秒

示例动画(运用hover、定位、位移、过渡组合实现):

 完整代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .box {
  10. position: relative;
  11. margin: 100px auto;
  12. width: 400px;
  13. height: 400px;
  14. background-color: skyblue;
  15. overflow: hidden;
  16. }
  17. .son1,
  18. .son2,
  19. .son3,
  20. .son4 {
  21. position: absolute;
  22. transition: all 1s;
  23. }
  24. .son1 {
  25. left: -380px;
  26. width: 380px;
  27. height: 20px;
  28. background-color: red;
  29. }
  30. .son2 {
  31. top: -380px;
  32. left: 380px;
  33. width: 20px;
  34. height: 380px;
  35. background-color: yellow;
  36. }
  37. .son3 {
  38. top: 380px;
  39. left: 400px;
  40. width: 380px;
  41. height: 20px;
  42. background-color: green;
  43. }
  44. .son4 {
  45. top: 400px;
  46. width: 20px;
  47. height: 380px;
  48. background-color: blue;
  49. }
  50. .box:hover .son1 {
  51. transform: translate(380px);
  52. }
  53. .box:hover .son2 {
  54. transform: translateY(380px);
  55. }
  56. .box:hover .son3 {
  57. transform: translate(-380px);
  58. }
  59. .box:hover .son4 {
  60. transform: translateY(-380px);
  61. }
  62. </style>
  63. </head>
  64. <body>
  65. <div class="box">
  66. <div class="son1"></div>
  67. <div class="son2"></div>
  68. <div class="son3"></div>
  69. <div class="son4"></div>
  70. </div>
  71. </body>
  72. </html>

二、transform基础介绍_平面旋转

transform:rotate(角度)        角度单位:deg

  • 正数:顺时针        负数:逆时针
  • 需要搭配transition才能看见旋转的效果
  • 默认旋转中心为盒子的中心位置

如果要改变旋转中心的话,需要通过 transform-origin 来实现

transform-origin: 中心点的水平位置  中心点的垂直位置;

  • 取值可以是  数字+px
  • 百分比
  • 方向英文名,left……

 示例效果:运用hover+定位+旋转+中心点组合实现

 完整代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .box {
  10. position: relative;
  11. margin: 100px auto;
  12. width: 400px;
  13. height: 400px;
  14. transform: rotate(-90deg);
  15. }
  16. .son1,
  17. .son2,
  18. .son3,
  19. .hid {
  20. position: absolute;
  21. transition: all 1s;
  22. transform-origin: right;
  23. }
  24. .sun1,
  25. .sun2,
  26. .sun3,
  27. .min {
  28. position: absolute;
  29. border-radius: 50%;
  30. }
  31. .son1 {
  32. top: 25%;
  33. left: 25%;
  34. width: 100px;
  35. height: 200px;
  36. border-radius: 100px 0px 0 100px;
  37. background-color: red;
  38. z-index: 2;
  39. }
  40. .sun1 {
  41. left: 75px;
  42. width: 50px;
  43. height: 50px;
  44. background-color: red;
  45. }
  46. .son2 {
  47. top: 50px;
  48. left: 50px;
  49. width: 150px;
  50. height: 300px;
  51. border-radius: 150px 0px 0 150px;
  52. background-color: green;
  53. z-index: 1;
  54. }
  55. .sun2 {
  56. left: 125px;
  57. width: 50px;
  58. height: 50px;
  59. background-color: green;
  60. }
  61. .son3 {
  62. width: 200px;
  63. height: 400px;
  64. border-radius: 200px 0px 0 200px;
  65. background-color: blue;
  66. }
  67. .sun3 {
  68. left: 175px;
  69. width: 50px;
  70. height: 50px;
  71. background-color: blue;
  72. }
  73. .hid {
  74. width: 200px;
  75. height: 400px;
  76. background-color: rgb(255, 255, 255);
  77. z-index: 3;
  78. }
  79. .min {
  80. right: -50px;
  81. top: 150px;
  82. width: 100px;
  83. height: 100px;
  84. background-color: rgb(255, 255, 255);
  85. }
  86. .box:hover .son1,
  87. .box:hover .son2,
  88. .box:hover .son3 {
  89. transform: rotate(180deg);
  90. }
  91. </style>
  92. </head>
  93. <body>
  94. <div class="box">
  95. <div class="son1">
  96. <div class="sun1"></div>
  97. </div>
  98. <div class="son2">
  99. <div class="sun2"></div>
  100. </div>
  101. <div class="son3">
  102. <div class="sun3"></div>
  103. </div>
  104. <div class="hid">
  105. <div class="min"></div>
  106. </div>
  107. </div>
  108. </body>
  109. </html>

三、transform基础介绍_平面缩放

transform: scale(横轴缩放倍数, 竖轴缩放倍数);

  • 括号内可以只设置一个值,意为整体等比缩放

完整代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .pic {
  10. margin: 200px auto;
  11. width: 100px;
  12. height: 100px;
  13. background-color: skyblue;
  14. transition: all 0.5s;
  15. }
  16. .pic:hover {
  17. transform: scale(3);
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <div class="pic"></div>
  23. </body>
  24. </html>

 四、transform基础介绍_空间移动(3D转换)

        空间转换时在平面的X轴、Y轴基础上增加了Z轴方向

  • transform: translate3d(x值,y值,z值);

  • transform: translateZ( )

  • 在Z轴上移动正常情况下是看不出效果的,需要配合 perspective:数字px;使用

perspective  为透视属性,也就是实现近大远小的效果,只有这样,Z轴方向的移动效果才能显示出来,取值的大小就相当于人眼与屏幕的远近。

  • 一般情况下取值范围是  800px-1200px(此范围内的效果最好,可以试试范围外的效果如何)

示例如图(沿Z轴移动):

 

 完整代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. body {
  10. perspective: 1000px;
  11. }
  12. .box {
  13. width: 100px;
  14. height: 100px;
  15. margin: 200px auto;
  16. background-color: red;
  17. transition: all 1s;
  18. }
  19. .box:hover {
  20. transform: translateZ(200px)
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <div class="box"></div>
  26. </body>
  27. </html>

五、transform基础介绍_空间旋转(3D转换) 

1、三轴旋转

transform: rotateX();        沿着X轴(水平方向)旋转

transform: rotateY();        沿着Y轴(垂直方向)旋转

transform: rotateZ();        沿着Z轴旋转,等同于平面旋转

 效果展示:

X轴            Y轴               Z轴
X轴                                              Y轴                                                     Z轴

 完整代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .box {
  10. width: 900px;
  11. position: absolute;
  12. top: 50%;
  13. left: 50%;
  14. transform: translate(-50%, -50%);
  15. perspective: 1000px;
  16. }
  17. img {
  18. margin: 30px;
  19. width: 200px;
  20. transition: all 1s;
  21. }
  22. .p1:hover {
  23. transform: rotateX(90deg);
  24. }
  25. .p2:hover {
  26. transform: rotateY(90deg);
  27. }
  28. .p3:hover {
  29. transform: rotateZ(90deg);
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div class="box">
  35. <img class="p1" src="./4a72b556cf1deda73ac0ce.jpg" alt="">
  36. <img class="p2" src="./4a72b556cf1deda73ac0ce.jpg" alt="">
  37. <img class="p3" src="./4a72b556cf1deda73ac0ce.jpg" alt="">
  38. </div>
  39. </body>
  40. </html>

2、左手法则 

        通过旋转的方向,左手握住旋转轴,大拇指指向的时该轴的正方向(移动正值),手指弯曲的方向为旋转正方向(旋转正值)。

3、自定义旋转轴

transform: rotate3d(x,y,z,角度);        

  • x,y,z的取值范围是 0-1之间
  • rotate3d会根据自己的算法,计算出旋转轴

 如图,图片会以一条不常见的轴体进行旋转:

 代码如下:

transform: rotate3d(0.3, 0.4, 0.5, 90deg);

六、transform基础介绍_空间缩放(3D转换) 

transform: scaleX(倍数);        //宽度变化

transform: scaleY(倍数);        //高度变化

transform: scaleZ(倍数);        //厚度变化

transform: scale3d(x,y,z);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/266238
推荐阅读
相关标签
  

闽ICP备14008679号