好吧,这几天忙公司的项目有点搁置了。
对于css的中两个地方还是不熟悉。
第一个,关于2D转换中的旋转
第二个,关于2D转换中的倾斜

1、首先旋转的效果图:

image.png
在上面,我是将旋转的角度设置为30°,它会沿着X轴的方向,去旋转一定的距离。
image.png
这个效果图是,旋转了180°,会发现它被反转了位置。

因为在2D的事件中,旋转没有出现按照Y轴旋转的东西,所以我目前自己理解都是按照X轴进行旋转的。

所写的代码如下。

<style>
    *{padding: 0;margin: 0}
    .warp1{
        width: 100%;
        height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .warp2{
        width: 800px;
        height: 800px;
        border: 1px solid;
        flex-direction: column;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .warp3{
        width: 300px;
        height: 300px;
        background-color: lightpink;
        transition: all 2s;
        /*transform-origin: center;*/
    }
    .warp3:hover{
        transform: rotate(180deg); /*可以自己更改数值 */
    }


    .warp4{
        height: 6px;
        background: coral;
        width: 100%;
    }
</style>
<body class="warp1">
    <div class="warp2">
        <div class="warp3">我是会发生变化的部分</div>
        <div class="warp4"></div>
    </div>


</body>

2、关于skew()。倾斜

一开我甚至以为,倾斜与旋转的差不多的,样子甚至没多大的区别。然后果断的被打脸。
image.png
上面是X方向倾斜30deg,Y轴的方向为0deg。我们看到是,容器没有超过线条。

image.png
上面是y轴方向的倾斜30deg,X的方向为0。容器跟旋转有点像,都超过了线条,但是与之差别的是,旋转过后,容器还是一个正方形没有改变,但是倾斜过后,容器变为了平行四边形。发生了形状的改变。
我理解的倾斜是,

如果两个人面对面站着。

X轴的倾斜 是你直面看过去,看到他左右摇晃。

Y轴的倾斜 是你直面看过去,他身体没有左右摇晃,但是旋转了一个角度。

类似军训的时候,教官站立不动面对我们喊的口号,向左转,向右转(向左右边转一个角度),这个时候从他的角度看,我们是在y轴倾斜了一个指定的度数。
当按照X轴的是,当容器旋转90度的时候,会与X轴平行。也可以假装是我下面设置的那条横线。

当shew()设置的是一个值的时候,那么那只是对于X轴的旋转。

image.png
上述是X与Y都是旋转30度的样子

当自己测试的时候,可以增加动画的时间长度更加好理解。
还有单独的设置一个角度。设置为45deg是我的感觉比较好的。
<style>
    *{padding: 0;margin: 0}
    .warp1{
        width: 100%;
        height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .warp2{
        width: 800px;
        height: 800px;
        border: 1px solid;
        flex-direction: column;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .warp3{
        width: 300px;
        height: 300px;
        background-color: lightpink;
        transition: all 6s; /* 改它的值让动画更加慢,看效果明显 */
        /*transform-origin: center;*/
    }
    .warp3:hover{
        transform: skew(0deg,45deg); /* 单独设置X的值或者 Y的值 */
        /* 90deg 180deg 360deg 45deg(X轴最佳) Y轴(看个人)*/
    }


    .warp4{
        height: 6px;
        background: coral;
        width: 100%;
    }
</style>
<body class="warp1">
    <div class="warp2">
        <div class="warp3">我是会发生变化的部分</div>
        <div class="warp4"></div>
    </div>


</body>

kkw凯凯王
42 声望2 粉丝