html:css3新特性:转换(二维,三维),过渡,动画

Posted 406070989senlin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html:css3新特性:转换(二维,三维),过渡,动画相关的知识,希望对你有一定的参考价值。

转换

2D转换

二维平面移动

语法:

transform:translateX(移动的距离) translateY(移动的距离);

Transform:translate(水平移动距离,垂直移动距离)

可以设置负值,水平的正值是向右移动,垂直的正值是向下移动

二维平面旋转

语法:

Transform:rotate(30deg);

旋转原点的设置

 transform-origin:center(默认值)

 可以设置left,top,right,bottom,center,

 百分比设置:transform-origin:水平位置的百分比 垂直位置的百分比

 

3D转换

透视点

在所看元素的父元素或者是祖先元素上设置透视点

语法:perspective: 1000px;

三维立体的移动

语法:

transform: translateZ(200px);

transform: translate3d(水平移动,垂直移动,z轴移动);

z轴:z轴垂直于屏幕,方向是射向我们。

三维立体的旋转

语法:

/*transform: rotateX(30deg);*/

/*transform: rotateY(30deg);*/

/*transform: rotateZ(30deg);*/

transform: rotate3d(1,1,1,30deg);

解析:rotate3d(x,y,z,30deg),x,y,z建立一个用原点射向(x,y,z)这个坐标的向量,用这个向量作为轴进行旋转。

 

/*二维移动*/
/*transform: translateX(400px) translateY(400px);*/
transform: translate(400px,400px);



/*旋转30度*/
transform: rotate(30deg);
                    
/*旋转原点的设置
 transform-origin:center(默认值)
 可以设置left,top,right,bottom,center,
 百分比设置:transform-origin:水平位置的百分比 垂直位置的百分比
                 * */
transform-origin: 0% 50%;


/* 从什么视角看三维*/
body{
                perspective: 1000px;
            }
/*三维移动:transform: translateZ(200px);*/
transform: translate3d(0,0,200px);
/*三维旋转*/
/*transform: rotateX(30deg);*/
/*transform: rotateY(30deg);*/
/*transform: rotateZ(30deg);*/
transform: rotate3d(1,1,1,300deg);

    
    /*倾斜*/
transform: skew(15deg,0deg);
/*反方向*/
transform: skew(-15deg,0deg);


/*这张图宽还是1,高放大3倍;*/
img{
                display: block;
                margin: 300px auto;
                transform: scale(1,3);
                
            }

{
width: 300px;
                height: 200px;
                background: skyblue;
                margin: 300px auto;
                
整个放大两倍
/*transform: scale(2);*/
高不变,宽了3倍
transform: scale(3,1);

}

 

 

 

 

Transition过渡

 

综合设置:

 

transition: all 2s;

 

分别设置:

 

/*过渡效果*/

/*transition:height 2s,transform 3s,background 2s;*/

/*transition: all 2s linear;*/

/*保留子元素3d效果*/
transform-style: preserve-3d;

/*过渡的属性*/

transition-property: all;

/*过渡所消耗的时间*/

transition-duration: 2s;

/*过渡变化的速度

 linear线性速度

 ease/ease-in/ease-out

 cubic-bezier(0.57,-0.34, 0.37, 1.44)

 * */

transition-timing-function: cubic-bezier(0.57,-0.34, 0.37, 1.44);

/*过渡的延迟时间*/

/*transition-delay: 2s;*/

 

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
            #d1{
                width: 200px;
                height: 200px;
                background: skyblue;
                transform: rotate(0deg);
                
                /*过渡效果*/
                /*transition:height 2s,transform 3s,background 2s;*/
                /*transition: all 2s linear;*/
                /*过渡的属性*/
                transition-property: all;
                /*过渡所消耗的时间*/
                transition-duration: 2s;
                /*过渡变化的速度
                 linear线性速度
                 ease/ease-in/ease-out
                 cubic-bezier(0.57,-0.34, 0.37, 1.44)
                 * */
                transition-timing-function: cubic-bezier(0.57,-0.34, 0.37, 1.44);
                /*过渡的延迟时间*/
                /*transition-delay: 2s;*/
            }
            
            
            
            /*鼠标悬浮上去的状态*/
            #d1:hover{
                height: 400px;
                transform: rotate(360deg);
                background: purple;
            }
        </style>
    </head>
    <body>
        <div id="d1">
            
        </div>
    </body>
</html>

 

 

 

 

 

 

Animation:动画

 

综合设置语法:animation: donghua 4s infinite;

 

分别设置:

 

/*动画*/

/*animation: donghua 5s;*/

/*动画的名称*/

animation-name: donghua;

/*一次动画所花费的时间*/

animation-duration: 3s;

/*动画的速度*/

animation-timing-function: linear;

/*动画延迟时间*/

animation-delay: 3s;

/*设置动画的次数*/

animation-iteration-count: 3;

/*设置动画的往返*/

animation-direction: alternate;

/*保留最后一刻状态*/

animation-fill-mode: forwards;

 

 

 

不同状态写在关帧里

 

@keyframes donghua{

过程走到了%几 要达到什么效果

0%{

transform: translate(0,0);

}

50%{

transform: translate(500px,0);

}

100%{

transform: translate(500px,500px);

}

}

 

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        
        <style type="text/css">
            #d1{
                width: 300px;
                height: 200px;
                background: skyblue;
                
                /*动画*/
                /*animation: donghua 5s;*/
                /*动画的名称*/
                animation-name: donghua;
                /*一次动画所花费的时间*/
                animation-duration: 3s;
                /*动画的速度*/
                animation-timing-function: linear;
                /*动画延迟时间*/
                animation-delay: 3s;
                /*设置动画的次数*/
                animation-iteration-count: 3;
                /*设置动画的往返*/
                animation-direction: alternate;
                /*保留最后一刻状态*/
                animation-fill-mode: forwards;
                
            }
            
            
            @keyframes donghua{
                0%{
                    transform: translate(0,0);
                }
                50%{
                    transform: translate(500px,0);
                }
                100%{
                    transform: translate(500px,500px);
                }
            }
            
        </style>
    </head>
    <body>
        <div id="d1">
            
        </div>
    </body>
</html>

 

以上是关于html:css3新特性:转换(二维,三维),过渡,动画的主要内容,如果未能解决你的问题,请参考以下文章

h5 和css3 的新特性

认识CSS3特性之过渡

CSS3用过哪些新特性

前端学习 HTML+CSS进阶

css3 转换 过渡 动画 CSS 优化

CSS3新特性