这是一款炫酷的纯css3鼠标滑过图片快速切换展示效果。这款插件的灵感来自于Contain.r。整个快速播放功能使用CSS animations完成,图片的播放和暂停使用的是 animation-play-state 。
HTML
html结构非常简单:
<div class="hs-wrapper">
<img src="images/1.jpg" alt="image01"/>
<img src="images/2.jpg" alt="image02"/>
<img src="images/3.jpg" alt="image03"/>
<img src="images/4.jpg" alt="image04"/>
<img src="images/5.jpg" alt="image05"/>
<img src="images/6.jpg" alt="image06"/>
<img src="images/7.jpg" alt="image07"/>
<img src="images/8.jpg" alt="image08"/>
<div class="hs-overlay">
<span>Summer <strong>2014</strong></span>
</div>
</div>
CSS
为图片添加显示和隐藏动画效果。
.hs-wrapper img{
top: 0px;
left: 0px;
position: absolute;
animation: showMe 0.8s linear infinite 0s forwards;
animation-play-state: paused;
}
只有鼠标滑过或悬停时图片才开始播放。
其它部分CSS代码请参考下载文件。
.hs-wrapper:hover img{
animation-play-state: running;
}
播放效果只是简单的显示图片并将它放到容器的顶部。
@keyframes showMe {
0% { visibility: visible; z-index: 100; }
12.5% { visibility: visible; z-index: 100; }
25% { visibility: hidden; z-index: 0; }
100% { visibility: hidden; z-index: 0; }
}
现在所有的图片都有相同的animation,但我们想为每个图片动画创建一些延时。我们还需要设置每张图片的z-index。由于整个动画的时间为0.8s,所以我们设置每张图片的延时为0.1s(除了第一张图片)。
.hs-wrapper img:nth-child(1){
z-index: 9;
}
.hs-wrapper img:nth-child(2){
animation-delay: 0.1s;
z-index: 8;
}
.hs-wrapper img:nth-child(3){
animation-delay: 0.2s;
z-index: 7;
}
.hs-wrapper img:nth-child(4){
animation-delay: 0.3s;
z-index: 6;
}
遮罩层的css代码如下:
.hs-overlay{
position: absolute;
width: 100%;
height: 100%;
opacity: 0;
z-index: 500;
background: rgba(0,0,0,0.6);
box-shadow: 0 0 0 0 rgba(255,255,255,0.3) inset;
pointer-events: none;
transition: all 0.3s linear;
}
当鼠标滑过时,显示遮罩层:
.hs-wrapper:hover .hs-overlay{
opacity: 1;
box-shadow: 0 0 0 5px rgba(255,255,255,0.3) inset;
}