博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css3动画与2D、3D之间的转换
阅读量:4708 次
发布时间:2019-06-10

本文共 2784 字,大约阅读时间需要 9 分钟。

  应用css3中的transition(过渡动画)、@keyframes(关键帧动画)、transform(2D、3D转换)可以实现一些小的动画效果。

  一、transition—过渡动画

<!DOCTYPE html>

<html>

<head>
<title>基本图像的放大缩小</title>
<meta charset="utf-8">
<style type="text/css">
#div1{
width: 200px;
height: 200px;
background: red;
transition: 1s ease 0.5s;
margin: 50px auto 0;
}

#div1:hover{

width: 400px;
height: 400px;
background: blue;
border-radius: 5%;

}

</style>

</head>

<body>
<div id="div1"></div>
</body>
</html>

这是一个基本的红色方块与蓝色方块的转换效果,transition属性实现了这两者之间的过渡。

五个属性

1、transition-property  css样式的属性名称;

2、transition-duration  动画的持续时间,单位为s;

3、transition-timing-function  动画效果的函数名称,后接linear(线性变化)、ease(逐渐慢下来)、ease-in(加速)、ease-out(减速)等;

4、transition-delay  动画延迟执行的时间,单位也是s。

5、animation-play-state:paused;  暂停动画执行。

五个属性可以简写为  transition:样式  持续时间  动画效果  延迟时间;(效果没有可以不写)

 

二、@keyframes关键帧动画

七个属性

animation-name  帧动画名称

animation-duration  动画持续时间 (需要单位 s

 

animation-timing-function  动画效果函数名称  inear、ease、ease-in、ease-out、ease-in-out     

 

animation-delay   延迟执行动画的时间

 

animation-iteration-count  动画播放次数   n 次数    infinite  无限次     

 

animation-direction  是否轮流播放  normal  正常播放    alternate  来回轮流播放

 

animation-fill-mode: none | forwards | backwards | both | initial | inherit; 动画完成时的状态

 

@keyframes 帧动画名称 { selector { styles } }selector  from  to   /  %  

简写 animation:name time ease delay count direction fill-mode;中间用空格隔开。    

<!DOCTYPE html>

<html>

<head>
<title>关键帧</title>
<style type="text/css">
#div1{
width: 200px;
height: 200px;
background: #ccc;
position: absolute;
left: 10px;
top: 100px;
/*animation:move 2s linear infinite;*/
animation:move 2s;
/*animation-fill-mode: forwards;*/
animation-fill-mode: backwards;

}

@keyframes move{
form{left: 10px;}
to{left: 500px;}
}
/* @keyframes move{
50% {left: 500px;}
100% {left: 10px;}
}
*/

</style>

</head>
<body>
<div id="div1"></div>
</body>
</html>

 

三、transform(2D、3D变换)

      首先是transform-2D变换,2D变换有偏移、缩放、旋转和倾斜,每一个需要用到不同的属性值,分别为:translate、scale、rotate、skew;其中translate、scale、skew具有x轴和y轴,比如translateX(50px)表示向X轴正半轴偏移50像素,translateY(40px)表示向Y轴负半轴偏移40像素,当然,也可以合起来写:translate(50px,40px),表示同时向X轴Y轴分别偏移50和40像素,中间用逗号隔开。

      transform-3D变换比2D变换每个属性都多了一个Z轴,当然需要设置transform-style:preserve-3d;才能看到3D视角效果,否则只能看到平面效果

 

 

<!DOCTYPE html>

<html>
<head>
<title>旋转</title>
<meta charset="utf-8">
<style type="text/css">
#box{
width: 300px;
height: 400px;
border: 5px solid #000;
margin: 100px auto 0;
transform-style: preserve-3d;
transform: rotateX(30deg) rotateY(-45deg) rotateZ(30deg);

 

}

.div1{
width: 300px;
height: 400px;
background: red;
animation: move 2s linear infinite;
}
@keyframes move{
0%{ transform: rotateX(0deg);}
25%{ transform: rotateX(90deg);}
50%{ transform: rotateX(180deg);}
75%{ transform: rotateX(270deg);}
100%{ transform: rotateX(360deg);}
}
</style>
</head>
<body>
<div id="box">
<div class="div1"></div>
</div>

 

</body>

</html>

 

 

 

 

        

转载于:https://www.cnblogs.com/hhhhhh/p/5744178.html

你可能感兴趣的文章
洛谷 P1101 单词方阵
查看>>
Swift DispatchQueue
查看>>
C#和JAVA 访问修饰符
查看>>
小甲鱼OD学习第1讲
查看>>
HDU-1085 Holding Bin-Laden Captive-母函数
查看>>
php提示undefined index的几种解决方法
查看>>
LRJ
查看>>
Struts2环境搭建
查看>>
Linux: Check version info
查看>>
stl学习之测试stlen,cout等的运行速度
查看>>
魔戒三曲,黑暗散去;人皇加冕,光明归来
查看>>
Error和Exception
查看>>
Python和Singleton (单件)模式[转载]
查看>>
httpclient设置proxy与proxyselector
查看>>
IT常用单词
查看>>
拓扑排序
查看>>
NYOJ--32--SEARCH--组合数
查看>>
gulpfile 压缩模板
查看>>
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>