用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>
以上两种方法是我想到最简单的方法,如果有更好的方法还请朋友们留言指教。