zoukankan      html  css  js  c++  java
  • css transform的2D转换

    导读:

    ●转换transform我们简单理解就是变形有2D和3D之分

    ●我们暂且学了三个分别是位移旋转和缩放

    ●2D移动translate(x, y)最大的优势是不影响其他盒子,里面参数用% ,是相对于自身宽度和高度来计算的

    可以分开写比如translateX(x)和translateY(y)

    ●2D旋转rotate(度数)可以实现旋转元素 度数的单位是deg

    ●2D缩放sacle(x,y)里面参数是数字不跟单位可以是小数最大的优势不影响其他盒子

    设置转换中心点transform-origin:xy;参数可以百分比、 像素或者是方位名词

    ●当我们进行综合写法,同时有位移和其他属性的时候,记得要将位移放到最前

    2D转换之translate

    transform:translate(x,y);

    x是指沿x轴移动,y是指沿y轴移动。

    如果只想移动让其在x或y轴移动也可以使用translateX(),translateY();

    1.tranlate定义2D中的转换,沿着X轴和Y轴移动元素。

    2,transform最大的优点:不会影响到其他元素的位置

    3.translate中的百分比单位是相对于自身元素的大小而言的。

    2D转换之旋转rotate

    2D旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转

    语法:transform:rotate(度数);

    2.重点

    ●rotate里面跟度数,单位是deg比如rotate(45deg)

    角度为正时,顺时针,负时,为逆时针

    ●默认旋转的中心点是元素的中心点

    可结合过渡效果为元素添加旋转效果

    <style>
            img {
                 100px;
                transition: all 0.5s;
            }
    
            img:hover {
                transform: rotate(360deg);
            }
        </style>
    </head>
    
    <body>
        <img src="user.jpg" alt="">
    </body>

    4.4 2D转换中心点transform-origin
    我们可以设置元素转换的中心点
    1.语法
    transform-origin: x y;
    2.重点
    ● 注意后面的参数x和y用空格隔开
    ●xy默认转换的中心点是元素的中心点(50% 50%)
    ●还可以给xy设置像索或者方位名词( top bottom left right center )

    旋转中心点案例

     实现功能:鼠标经过时子盒子旋转至框中

    <style>
            div {
                overflow: hidden;
                 100px;
                height: 100px;
                margin: 100px auto;
                border: 1px solid #ccc;
            }
    
            div::after {
                content: '';
                display: block;
                 100%;
                height: 100%;
                background-color: pink;
                transform-origin: left bottom;
                transform: rotate(180deg);
                transition: all 1s;
            }
    
            div:hover::after {
                transform: rotate(0deg);
            }
        </style>
    </head>
    
    <body>
        <div></div>
    </body>

     2D转换之缩放scale
    缩放,顾名思义,可以放大和缩小。只要给元素添加_ 上了这个属性就能控制它放大还是缩小。
    1.语法
    transform:scale(x,y) ;

    2.注意
    注意其中的x和y用逗号分隔

    transform:scale(1,1) : 宽和高都放大一倍,相对于没有放大

    transform:scale(2,2) : 宽和高都放大了2倍
    ●transform:scale(2) : 只写一个参数, 第二个参数则和第一个参数- 样,相当于scale(2,2)
    transform:scale(0.5,0.5) :缩小
    scale缩放最大的优势:可以设置转换中心点缩放,默认以中心点缩放的,而且不影响其他盒子

    scale相对于直接修改元素的宽度和高度值的优势:

    直接修改元素的宽度元素会像两边扩展,直接修改元素的高度元素向下扩展

    修改元素的宽度或高度后,该元素的变化会影响到其他的元素位置,而scale则不会有这个问题

    <style>
            div {
                overflow: hidden;
                 200px;
                height: 200px;
                transition: all .3s;
            }
    
            div img:hover {
                transform: scale(1.2);
            }
        </style>
    </head>
    
    <body>
        <div><a href=""><img src="user.jpg" alt=""></a></div>
    </body>

    2D转换综合写法
    注意:
    1.同时使用多个转换,其格式为: transform: translate() rotate( scale() ..等,
    2.其顺序会影转换的效果。( 先旋转会改变坐标轴方向)
    3.当我们同时有位移和其他属性的时候,记得要将位移放到最前面

  • 相关阅读:
    JS站点
    1011 World Cup Betting (20分)
    1007 Maximum Subsequence Sum (25分)(动态规划DP)
    1006 Sign In and Sign Out (25分)
    1005 Spell It Right (20分)
    1004 Counting Leaves (30分)(DFS)
    1003 Emergency (25分)(Dijkstra算法)
    1002 A+B for Polynomials (25分)
    1001 A+B Format (20分)
    canvas
  • 原文地址:https://www.cnblogs.com/echol/p/12802960.html
Copyright © 2011-2022 走看看