h5-18

3D属性

 1     <style>
 2         .wrap {
 3             position: relative;     /*相对定位*/
 4             margin: 100px auto;
 5             width: 400px;
 6             height: 300px;
 7             background: red;
 8             transform: rotateY(85deg);        先于Y轴旋转
 9             transform-style: preserve-3d;        
10         }
11 
12         .box {
13             font-size: 28px;
14             width: 150px;
15             height: 200px;
16             background: green;
17             position: absolute;
18             left: 50%;
19             top: 50%;
20             margin-left: -50px;
21             margin-top: -100px;
22             transform: rotateX(30deg);
23         }
24     </style>
<!--
    transform-style:
        flat 让嵌套子元素以2d平面展示
        preserve-3d 让嵌套子元素以3d空间展示
-->

<div class="wrap">
    <div class="box">111111</div>
</div>

 

 1     <style>
 2         .wrap {
 3             float: left;
 4             width: 200px;
 5             height: 300px;
 6             border: 1px solid red;
 7             margin: 100px 0 0 100px;
 8             perspective:500px;          
 9         }
10 
11         .wrap img {
12             transition: 0.5s;
13         }
14 
15         .wrap:nth-child(1):hover img {
16             transform: translateZ(100px);
17         }
18 
19         .wrap:nth-child(2):hover img {
20             transform: translateZ(-100px);
21         }
22     </style>
<!--
    perspective: 视距  让3D变换的子元素拥有透视效果(近大远小)
        加给父元素
        只对3d变换的元素有效

        值越小透视效果越明显
        无穷大时接近于none

        通常:500px-800px

    translateZ() 沿z轴平移
        正值:向前(越近)
        负值:向后 (越远)
-->

<div class="wrap">
    <img src="pic02.jpg"/>
</div>


<div class="wrap">
    <img src="pic02.jpg"/>
</div>

3D旋转

 1     <style>
 2         .wrap{ 
 3             float: left;
 4             width:200px;
 5             height:300px;
 6             border:1px solid red;
 7             margin:100px 0 0 100px; 
 8             perspective:500px;
 9         }
10         .wrap img{transition:0.5s;}
11         .wrap:nth-child(1):hover img{transform:rotateX(30deg);}
12         .wrap:nth-child(2):hover img{transform:rotateX(-30deg);}
13         .wrap:nth-child(3):hover img{transform:rotateY(30deg);}
14         .wrap:nth-child(4):hover img{transform:rotateY(-30deg);}
15         .wrap:nth-child(5):hover img{transform:rotateZ(30deg);}
16         .wrap:nth-child(6):hover img{transform:rotateZ(-30deg);}
17 
18     </style>
<body>
<!--
    perspective: 视距  让3D变换的子元素拥有透视效果(近大远小)
        加给父元素
        只对3d变换的元素有效

        值越小透视效果越明显
        无穷大时接近于none

        通常:500px-800px

    translateZ() 沿z轴平移
        正值:向前(越近)
        负值:向后 (越远)

     rotateX()  沿X轴旋转
        正值:向上
        负值:向下
     rotateY() 沿y轴旋转
        正值:向右
        负值:向左
     rotateZ() 沿z轴旋转
-->

<div class="wrap">
    <img src="pic02.jpg"/>
</div>


<div class="wrap">
    <img src="pic02.jpg"/>
</div>


<div class="wrap">
    <img src="pic02.jpg"/>
</div>


<div class="wrap">
    <img src="pic02.jpg"/>
</div>


<div class="wrap">
    <img src="pic02.jpg"/>
</div>


<div class="wrap">
    <img src="pic02.jpg"/>
</div>

 1     <style>
 2         .box{
 3             position: absolute;
 4             left:0;
 5             top:0;
 6             width: 100px;
 7             height: 100px;
 8             background:red;
 9             /*动画执行*/
10             animation: run 5s 4s cubic-bezier(0, 0, 0, 1.29) infinite alternate;/*调用动画*/
11         }             /*动画名称 持续时间 n秒后执行 时间函数    重复播放    反向播放*/
12 
13         /*定义动画  -  关键帧*/
14         @-o-keyframes run{
15             0%,100%{left:0;top:0;}
16             25%{left:200px;top:0;}
17             50%{left:200px;top:200px;}
18             75%{left:0;top:200px;}
19             /*100%{left:0;top:0;}*/
20         }
21         @-moz-keyframes run{
22             0%,100%{left:0;top:0;}
23             25%{left:200px;top:0;}
24             50%{left:200px;top:200px;}
25             75%{left:0;top:200px;}
26             /*100%{left:0;top:0;}*/
27         }
28         @-ms-keyframes run{
29             0%,100%{left:0;top:0;}
30             25%{left:200px;top:0;}
31             50%{left:200px;top:200px;}
32             75%{left:0;top:200px;}
33             /*100%{left:0;top:0;}*/
34         }
35         @-webkit-keyframes run{
36             0%,100%{left:0;top:0;}
37             25%{left:200px;top:0;}
38             50%{left:200px;top:200px;}
39             75%{left:0;top:200px;}
40             /*100%{left:0;top:0;}*/
41         }
42         /*标准用法          动画的定义*/
43         @keyframes run{
44             0%,100%{left:0;top:0;}
45             25%{left:200px;top:0;}
46             50%{left:200px;top:200px;}
47             75%{left:0;top:200px;}
48             /*100%{left:0;top:0;}*/
49         }
50 
51 
52     </style>
<!--
    @keyframe 定义帧动画
    animation:
        animation-name:  @keyframes定义
        animation-duration: 动画持续的时间
        animation-timing-function 时间函数
        animation-delay 动画延迟时间

    -->
    <div class="box"></div>

 1     <style>
 2         .box{
 3             position: absolute;
 4             left:0;
 5             top:0;
 6             width: 100px;
 7             height: 100px;
 8             background:red;
 9             -webkit-animation: run 1s forwards;
10             animation: run 1s forwards;/*forward作用,始动画停在最后不动,否则会恢复至初始状态*/
11 
12         }
13 
14         /*定义动画*/
15         @-o-keyframes run{
16             /*关键字*/
17             from{left:0;top:0;}
18             to{left:200px;top:0px;}
19         }
20         @-moz-keyframes run{
21             /*关键字*/
22             from{left:0;top:0;}
23             to{left:200px;top:0px;}
24         }
25         @-ms-keyframes run{
26             /*关键字*/
27             from{left:0;top:0;}
28             to{left:200px;top:0px;}
29         } @-webkit-keyframes run{
30               /*关键字*/
31               from{left:0;top:0;}
32               to{left:200px;top:0px;}
33           }
34         @keyframes run{
35             /*关键字*/
36             from{left:0;top:0;}
37             to{left:200px;top:0px;}
38 
39         }
40 
41 
42     </style>
<!--
   @keyframe 定义帧动画

-->
<div class="box"></div>

 1     <style>
 2         .box{
 3             position: absolute;
 4             left:0;
 5             top:0;
 6             width: 100px;
 7             height: 100px;
 8             background:red;
 9             animation: run 1s ease-in-out 2 alternate-reverse; /*调用动画*/
10 
11         }
12 
13         /*定义动画  -  关键帧*/
14         @keyframes run{
15             0%,100%{left:0;top:0;}
16             25%{left:200px;top:0px;}
17             50%{left:200px;top:200px;}
18             75%{left:0;top:200px;}
19             /*100%{left:0;top:0;}*/
20         }
21 
22 
23     </style>
<!--

    @keyframe 定义帧动画
    animation:
        animation-name:  @keyframes定义
        animation-duration: 动画持续的时间
        animation-timing-function 时间函数
        animation-delay 动画延迟时间
        animation-iteration-count: 动画播放的次数
              1默认 number / infinite 无限循环
        animation-direction:  动画运动的方向
              normal  /  alternate(正向反向交替进行) /  反向 reverse /  alternate-reverse反向正向交替进行

-->
<div class="box"></div>

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="animate.css"/>
</head>
<body>
<div class="animated rollIn">文本内容</div>
</body>
</html>

此处animate.css为网上搜集的动画库

更换动画效果时  <div class="animated rollIn">文本内容</div>

animated不变将rollIn更换为库中其他效果即可

原文地址:https://www.cnblogs.com/qianfur/p/12523655.html