主要是通过css3的动画及关键帧属性来设置图片的平移距离,以达到轮播图的效果
HTMl
<body>
<div class="banner">
<div class="box">
<img src="img/1.jpg" alt="" />
<img src="img/2.jpg" alt="" />
<img src="img/3.jpg" alt="" />
<img src="img/4.jpg" alt="" />
<img src="img/5.jpg" alt="" />
</dvi>
</div>
</body>
CSS
<style>
body{
padding: 0;
margin: 0;
}
.banner{
width: 800px;
height: 450px;
margin: 0px auto;
overflow: hidden;
/* /隐藏多余出来的图片 */
}
.box{
width: 4000px;
height: 450px;
animation: mykey 10s 1s infinite alternate ;
/* alternate是反向 infinite 是循环无限次
前面的秒一定是持续时间,后面的秒是延迟时间 */
}
.box:hover{
animation-play-state: paused;
/* 动画暂停 */
}
.box>img{
float: left;
}
@keyframes mykey{
25%{
margin-left: -800px;
}
50%{
margin-left: -1600px;
}
75%{
margin-left: -2400px;
}
100%{
margin-left: -3200px;
}
}
</style>
效果图
需要注意的事,鼠标悬停事件下需要打:
animation-play-state: paused;
而不是:
animation: paused;
不然
最后也留下一个问题
“如何做到播放到最后一张图片后,立刻向左移动到第一张图片”