transform三大属性 rotate、scale、translate

1、菜鸟教程demo:https://c.runoob.com/codedemo/3391
2、搭配 transform-orgion(动画基点)使用:https://blog.csdn.net/weixin_44167504/article/details/108418195?spm=1001.2014.3001.5501

transform三大属性:rotate(旋转)scale(缩放) 、 translate(移动)
其他属性:skew(扭曲) 、 matrix(矩阵变形)
语法:transform:rotate | scale | skew | translate |matrix;

一. 移动translate
translate()相当于水平平移,+ 表示向右/下,- 表示向左/上
translateX(x)水平方向平移
translateY(y)垂直方向平移
translateZ(z)相当于放大
translate(x,y)相当于水平平移+垂直平移
translate(x,y,z)相当于水平平移+垂直平移+放大

  1. translate(100px)实际上是水平向右平移100px

在这里插入图片描述

  1. translateX(100px)水平向右平移100px

在这里插入图片描述

  1. translateY(100px)水平向下平移100px

在这里插入图片描述

  1. translateZ(100px)相当于放大

在这里插入图片描述

  1. translate(x,y)2D平移,translate(100px,100px)右、下各平移100px

右下角
6. translate3d(20px,20px,100px) 右、下各平移20并放大
在这里插入图片描述

二. 旋转rotate效果图
rotate(angle)定义2D旋转
rotateX(angle)
rotateY(angle)
rotateZ(angle)
rotate3d(angle)定义3d旋转

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>transform</title>

  <style>
    body {
      background: #F5F3F4;
      margin: 0;
      padding: 10px;
      font-family: 'Open Sans', sans-serif;
      text-align: center;
    }

    .card {
      display: inline-block;
      margin: 10px;
      background: #fff;
      padding: 15px;
      min-width: 200px;
      box-shadow: 0 3px 5px #ddd;
      color: #555;
    }

    /* 背景 */
    .card .box {
      width: 100px;
      height: 100px;
      margin: auto;
      background-color: #ddd;
      cursor: pointer;
      box-shadow: 0 0 5px #ccc;
      -webkit-perspective: 1000px;
      -moz-perspective: 1000px;
      perspective: 1000px;
    }

    .card .box .fill {
      width: 100px;
      height: 100px;
      position: relative;
      transform-origin: center;
      -webkit-transition: 0.3s;
      transition: 0.3s;
      background-color: skyblue;
    }

    /* rotate(45deg) */
    .rotate:hover .fill {
      -webkit-transform: rotate(45deg);
      transform: rotate(45deg);
    }

    /* rotateX(45deg) */
    .rotateX:hover .fill {
      -webkit-transform: rotateX(45deg);
      transform: rotateX(45deg);
    }

    /* rotateY(45deg) */
    .rotateY:hover .fill {
      -webkit-transform: rotateY(45deg);
      transform: rotateY(45deg);
    }

    /* rotateZ(45deg) */
    .rotateZ:hover .fill {
      -webkit-transform: rotateZ(45deg);
      transform: rotateZ(45deg);
    }

    /* transform: rotate3d(x,y,z,angle);*/
    /* 角度为整数表示顺时针,角度为负表示逆时针 */
    .rotate3d:hover .fill {
      -webkit-transform: rotate3d(1, 0, 1, -180deg);
      transform: rotate3d(1, 0, 1, -180deg);

    }
  </style>
</head>

<body>
  <!-- 
  transform三大属性:rotate(旋转)
                    scale(缩放)
                    translate(移动)
           其他属性:skew(扭曲)
                    matrix(矩阵变形)

               语法:transform:rotate | scale | skew | translate |matrix;
      一、旋转rotate
          rotate(angle)定义2D旋转 
          rotateX(angle)            
          rotateY(angle)            
          rotateZ(angle)            
          rotate3d(angle)定义3d旋转
          -->
  <!-- rotate(45deg) -->
  <div class="card">
    <div class="box rotate">
      <div class="fill"></div>
    </div>
    <p>rotate(45deg)</p>
  </div>

  <!-- rotateX(45deg) -->
  <div class="card">
    <div class="box rotateX">
      <div class="fill"></div>
    </div>
    <p>rotateX(45deg)</p>
  </div>
  <!-- rotateY(45deg) -->
  <div class="card">
    <div class="box rotateY">
      <div class="fill"></div>
    </div>
    <p>rotateY(45deg)</p>
  </div>
  <!-- rotateZ(45deg) -->
  <div class="card">
    <div class="box rotateZ">
      <div class="fill"></div>
    </div>
    <p>rotateZ(45deg)</p>
  </div>
</body>

</html>

rotate(45deg)
rotateX(45deg)
rotateY(45deg)
transform: rotate3d(1, 0, 1, -180deg);顺时针旋转消失
在这里插入图片描述

三. 缩放scale效果图
scale(数值)定义倍数缩放,>1放大,<1缩小
scaleX()通过x轴定义,仅水平方向缩放
scaleY()通过y轴定义,仅垂直方向缩放
scaleZ()通过z轴定义,定义3d缩放

transform: scale(2);放大两倍在这里插入图片描述

transform: scaleX(2);水平方向放大两倍
在这里插入图片描述

transform: scaleY(2);垂直方向放大两倍在这里插入图片描述
缩小同理。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐