html CSS3-transform的用法

在这里插入图片描述

1、transform实现位移、缩放、旋转、斜切

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>transform</title>
    <style type="text/css">

        /*用法一:transform实现位移*/
        .box{
            width: 200px;
            height: 200px;
            border: 3px solid #000;
            background-color: goldenrod;
            margin: 50px auto 0;
            /*translte位移比定位做的位移性能高,建议使用translate*/
            /*使用transform实现位移操作*/
            transform: translate(0px,0px);
            transition: all 500ms ease;

        }
        .box:hover{
            transform: translate(50px,50px);
        }

        /*用法二:transform实现缩放*/
        .box1{
            width: 200px;
            height: 200px;
            border: 3px solid #000;
            background-color: goldenrod;
            margin: 200px auto 0;

            /*使用transform实现缩放*/
            transform: scale(1,1);  /*表示水平方向与竖直方向变为原先一倍*/
            transition: all 500ms ease;
        }

        .box1:hover{
            transform: scale(2,2);
        }

         /*用法三:transform实现旋转*/
        .box2{
            width: 200px;
            height: 200px;
            border: 3px solid #000;
            background-color: goldenrod;
            margin: 200px auto 0;

            /*使用transform实现旋转*/
            transform: rotate(0deg);
            transition: all 500ms ease;
        }

        .box2:hover{
            transform: rotate(45deg);/*表示旋转45度*/
        }

        /*用法四:transform实现斜切*/
        .box3{
            width: 200px;
            height: 200px;
            border: 3px solid #000;
            background-color: goldenrod;
            margin: 200px auto 0;

            /*使用transform实现斜切*/
            transform: skew(0,0);       /*表示沿x轴进行斜切*/
            transition: all 500ms ease;
        }

        .box3:hover{
            transform: skew(45deg,0)/*表示斜切*/
        }

        /*用法五:transform实现斜切*/
        .box4{
            width: 200px;
            height: 200px;
            border: 3px solid #000;
            background-color: goldenrod;
            margin: 200px auto 0;

            /*使用transform实现斜切*/
            transform: skew(0,0);       /*表示沿y轴进行斜切*/
            transition: all 500ms ease;
        }

        .box4:hover{
            transform: skew(0,45deg)/*表示斜切*/
        }

    </style>
</head>
<body>
        <div class="box"></div>
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
        <div class="box4"></div>
</body>
</html>

2、transform设置旋转中心

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        .box1,.box2,.box3,.box4{
            width: 200px;
            height: 200px;
            border: 2px solid black;
            background-color: gold;
            margin: 30px;
            float: left;

            transition: all 500ms ease;

        }
        .box2{
            transform-origin: left center ;     /*设置旋转中心*/
        }

        .box3{
            transform-origin: left top ;     /*设置旋转中心*/
        }

        .box4{
            transform-origin: 50px 50px ;     /*设置旋转中心,表示50*50的地方*/
        }

        .box1:hover,.box2:hover,.box3:hover,.box4:hover{
            transform: rotate(45deg);
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
    <div class="box4"></div>
</body>
</html>

3、transform实现三维旋转

实现绕Y轴旋转,并设置透视距离

在这里插入图片描述
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>transform设置三维旋转</title>
    <style type="text/css">
        .box{
            width: 300px;
            height: 300px;
            background-color: yellow;
            border: 3px solid black;
            margin: 50px auto 0;

            /*transform: rotate(45deg);   !*默认是暗转z轴旋转*!*/
            /*做变形动画,需要设置初始值,否则会出现bug*/
            transform: perspective(800px) rotate(0deg);     /*perspective(800px):为设置透视举例,经验值为800px*/
            transition: all 1s ease;
        }
        .box:hover{
            transform: perspective(800px) rotateY(45deg);
        }

    </style>
</head>
<body>
        <div class="box"></div>
</body>
</html>

显示效果如下所示:
在这里插入图片描述

实现绕X轴旋转,并设置透视距离

在这里插入图片描述
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>50_2_transform设置三维旋转_沿x轴旋转</title>

    <style type="text/css">
        .box{
            width: 300px;
            height: 300px;
            border: 2px solid black;
            background-color: cyan;
            margin: 50px auto 0;

            /*设置三维动画旋转--绕x轴旋转*/
            transform: perspective(800px) rotateX(0deg);
            transition: all 1s ease;
        }
        .box:hover{
            transform: perspective(800px) rotateX(45deg);
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

显示效果如下:在这里插入图片描述

3D旋转–实现左右开门效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>50_3_transform设置三维旋转_旋转开门效果</title>
    <style type="text/css">

        .con{
            width:600px ;
            height: 300px;
            background-color: pink;
            margin: 50px auto 0;
        }
        .box1,.box2{
            width: 296px;
            height: 296px;
            border: 2px solid black;
            background-color:gold;
            float: left;
        }
        /*设置原始状态*/
        .box1{
            transform: perspective(800px) rotateY(0deg);
            transition: all 1s ease;
        }
        /*设置原始状态*/
        .box2{
            transform: perspective(800px) rotateY(0deg);
            transition: all 1s ease;
        }
        
        .con:hover .box1{
            transform: perspective(800px) rotateY(70deg);

        }
        .con:hover .box2{
            transform: perspective(800px) rotateY(-70deg);
        }

    </style>
</head>
<body>
    <div class="con">
        <div class="box1"></div>
        <div class="box2"></div>
    </div>
</body>
</html>

显示效果如下:
在这里插入图片描述

4、transform实现翻页动画效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>实现翻页效果</title>
    <style type="text/css">
        .box{
            width: 300px;
            height: 272px;
            /*background-color: gold;*/
            border: 3px solid black;
            margin: 50px auto 0;
            position: relative;
            transform-style: preserve-3d;       /*设置3D旋转效果*/
        }

        .box img{
            position: absolute;
            left: 50%;
            top: 0;
            margin: 0 -150px 0;
            transform: perspective(800px) rotateY(0deg);
            transition: all 500ms ease;
            backface-visibility: hidden;/*设置旋转后,背景不可见*/
        }
        .box:hover img{
            transform: perspective(800px) rotateY(180deg);
        }

        .box .back{
            width: 300px;
            height: 270px;
            background-color: pink;
            position: absolute;
            left: 50%;
            top: 0;
            margin: 0 -150px 0;
            font-size: 20px;
            text-align: center;
            line-height: 272px;

            transform: rotateY(-180deg);
            transition: all 500ms ease;
            backface-visibility: hidden;
        }

        .box:hover .back{
            transform:perspective(800px) rotateY(0deg);
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="./images/location_bg.jpg" alt="背景图">
        <div class="back">
            图片的说明文字
        </div>
    </div>
</body>
</html>

显示效果如下所示:
在这里插入图片描述

5、走路动画效果

在这里插入图片描述

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        @keyframes walking {
            from{
                left: 0;
            }
            to{
                left: -960px;
            }

        }

        .box{
            width: 120px;
            height: 180px;
            border: 1px solid black;
            margin: 50px auto;
            overflow: hidden;
            position: relative;
        }
        .box img{
            position: absolute;
            left: 0;
            top: 0;

            /*设置动画*/
            animation: walking 1s steps(8) infinite normal;
        }
    </style>

</head>
<body>
    <div class="box">

        <img src="./images/walking.png" alt="">
    </div>
</body>
</html>

演示效果如下所示:
在这里插入图片描述

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值