用css实现幻灯片播放是最基础的,闲下来没事就试着写了一下,如果有不够完善或者方法不好的地方还请指点。下面我就用两种方法实现css花灯片效果。
方法1:定位。通过position属性改变left值
html代码:
<section id=box><ul><li>1</li><li>2</li><li>3</li><li>4</li><li>1</li></ul> </section>
css代码:
<style>* {margin: 0;padding: 0;font-family: 微软雅黑;list-style: none;}#box{width:400px;height:200px;border: 1px solid #000;margin: 50px auto;position:relative;overflow: hidden;}ul{width: 2000px;position: absolute;top:0;left:0;animation: dh 10s infinite ease;}ul li{width:400px;height:200px;float: left;}ul li:nth-child(1){background:#4b86db;}ul li:nth-child(2){background:#ff9999;}ul li:nth-child(3){background:olivedrab;}ul li:nth-child(4){background:skyblue;}ul li:nth-child(5){background:#4b86db;}@keyframes dh {0%{left:0px;}25%{left:-400px;}50%{left:-800px;}75%{left:-1200px;}100%{left:-1600px;}}
</style>
方法2:2D转换。通过transfrom属性
html代码:
<section id=box><ul><li>1</li><li>2</li><li>3</li><li>4</li><li>1</li></ul> </section>
css代码:
<style>* {margin: 0;padding: 0;font-family: 微软雅黑;list-style: none;}#box{width:400px;height:200px;border: 1px solid #000;margin: 50px auto;overflow: hidden;}ul{width: 2000px;animation: dh 10s infinite ease;}ul li{width:400px;height:200px;float: left;}ul li:nth-child(1){background:#4b86db;}ul li:nth-child(2){background:#ff9999;}ul li:nth-child(3){background:olivedrab;}ul li:nth-child(4){background:skyblue;}ul li:nth-child(5){background:#4b86db;}@keyframes dh {0%{transform: translateX(0)}25%{transform: translateX(-400px)}50%{transform: translateX(-800px)}75%{transform: translateX(-1200px)}100%{transform: translateX(-1600px)} }</style>
以上两种方法是我想到最简单的方法,如果有更好的方法还请朋友们留言指教。