Js动画
show / hide
var div = $('#test-show-hide'); div.show('slow'); // 在0.6秒钟内逐渐显示
div.hide(3000); // 在3秒钟内逐渐消失
slideUp / slideDown
垂直下拉,提前
div.slideUp(3000); // 在3秒钟内逐渐向上消失
div.slideDown(3000); // 在3秒钟内逐渐向下消失
fadeIn / fadeOut
淡入/淡出
div.fadeOut('slow'); // 在0.6秒内淡出
div.animate({ //在3秒内过渡到该状态
opacity: 0.25,
width: '256px',
height: '256px'
}, 3000, function () {
console.log('动画已结束');
// 恢复至初始状态:
$(this).css('opacity', '1.0').css('width', '128px').css('height', '128px');
});
CSS3动画
补间动画
transition只能设定初始和结束时刻的两个状态,中间的过程通过自动计算去完成。
transition 有四个子属性:
- transition-property,需要变化的属性:
- transition-duration,在延续时间段,
- transition-timing-function,变换的速率变化
- transition-delay:变换延迟时间。
transition-property,可以指定为all
,元素任何可过渡(transition)属性值变化时都将执行过渡(transition)效果。也可以指定为特一变化的属性。
例如可以设置不同的属性,包括旋转、扭曲、缩放、位移、矩阵 、原点 transform-origin、过渡属性 transition-property、过渡所需时间 transition-duration、过渡函数 transition-timing-function、过渡延迟时间 transition-delay
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动画</title>
<link rel="stylesheet" href="css/animation.css">
</head>
<body>
<section>
<figure class="animation1">
<img src="img/1.jpg" alt="1"/>
<figcaption>
<h1>图片1</h1>
<p>图片介绍</p>
<p>利用动画延迟达到特效</p>
</figcaption>
</figure>
<figure class="animation2">
<img src="img/2.jpg" alt="2"/>
<figcaption>
<h1>图片2</h1>
<p>图片介绍</p>
</figcaption>
<div class="reg"></div>
</figure>
<figure class="animation3">
<img src="img/3.jpg" alt="3"/>
<figcaption>
<h1>图片3</h1>
<p>图片介绍</p>
</figcaption>
<div class="reg"></div>
</figure>
</section>
</body>
</html>
html,body,figure,figcaption,section,h1,div,p{
margin:0;
}
.animation1{
}
figure{
position: relative;
width: 33.33%;
overflow: hidden;
float: left;
height:300px;
}
figure img{
width:100%;
height:100%;
background: #333;
opacity:0.7;
}
figure figcaption{
font-family: "Microsoft YaHei UI";
transition: all 0.5s ease-in-out;
color: #fff;
position: absolute;
top:10%;
left:10%;
width:80%;
transform: translate(-250px,0);
}
figure:hover figcaption{
transform: translate(0,0);
}
figure.animation1:hover img{
opacity:0.8;
}
figure.animation1:hover figcaption p{
transform: translate(0,0);
}
.animation1 figcaption h1{
font-size: 16px;
text-align: center;
width:30%;
background: #333;
opacity:0.3;
}
.animation1 figcaption p{
transition: all 0.4s ease-in-out;
font-size: 12px;
margin-top: 2%;
text-align: center;
width: 30%;
background: #333;
opacity: 0.3;
transform: translate(-250px,0);
}
figure.animation1 figcaption p:nth-of-type(1){
transition-delay: 0.15s;
}
figure.animation1 figcaption p:nth-of-type(2){
transition-delay: 0.3s;
}
figure.animation2 .reg{
border: 2px solid azure;
position: absolute;
width:80%;
height: 80%;
top:10%;
left:10%;
transition: all 0.4s ease-in-out;
transform:rotate(0deg) scale(0,0);
}
figure.animation2:hover .reg{
transform:rotate(360deg) scale(1,1);
}
figure.animation2 figcaption{
position: absolute;
left: 50%;
top: 50%;
text-align: center;
transform: translate(-50%,-50%);
}
figure.animation2 figcaption h1{
transition: all 0.4s ease-in-out;
transition-delay: 0.1s;
transform: skew(90deg);
}
figure.animation2 figcaption p{
transition: all 0.4s ease-in-out;
transition-delay: 0.3s;
transform: skew(90deg);
}
figure.animation2:hover figcaption h1{
transform: skew(0deg);
}
figure.animation2:hover figcaption p{
transform: skew(0deg);
}
figure.animation3 .reg{
border: 2px solid azure;
position: absolute;
width:80%;
height: 80%;
top:10%;
left:10%;
transition: all 0.4s ease-in-out;
transform:scale(0,0);
}
figure.animation3:hover .reg{
transform:scale(1,1);
}
figure.animation3 figcaption{
position: absolute;
left: 50%;
top: 50%;
text-align: center;
transform: translate(-50%,-50%);
}
figure.animation3 figcaption h1{
transition: all 0.4s ease-in-out;
transition-delay: 0.1s;
transform: scale(0,0);
}
figure.animation3 figcaption p{
transition: all 0.4s ease-in-out;
transition-delay: 0.3s;
transform: scale(0,0);
}
figure.animation3:hover figcaption h1{
transform: scale(1,1);
}
figure.animation3:hover figcaption p{
transform: scale(1,1);
}