CSS3动画效果结合JS的轮播
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS3动画效果结合JS的轮播相关的知识,希望对你有一定的参考价值。
<style> *{margin:0;padding:0} #big{ width: 100%; height: 280px; } .carousel-wrapper{ width: 500px; height: 280px; margin:100px auto; perspective:600px; } #carousel{ width: 500px; height: 280px; list-style-type:none; position:relative; } #carousel li{ position:absolute; left:0; top:0; transition: all 1s ease 0s; cursor: pointer; } .king{ z-index:10; } .left1{ transform:rotateY(30deg) translateZ(-150px) translateX(-100px); z-index:9; } .left2{ transform:rotateY(40deg) translateZ(-300px) translateX(-200px); z-index:8; } .right1{ transform:rotateY(-30deg) translateZ(-150px) translateX(100px); z-index:9; } .right2{ transform:rotateY(-40deg) translateZ(-300px) translateX(200px); z-index:8; } .bench-warmer{ transform:translateZ(-200px); opacity:0; } .carousel-wrapper span{ width:60px; height: 60px; line-height: 60px; text-align: center; font-size: 50px; color:white; position:absolute; left:-320px; top:50%; /*margin-top:-30px;*/ transform:translateY(-50%); background-color: rgba(0, 0, 255, .5); z-index:11; cursor:pointer; } .carousel-wrapper #right-btn{ right:-320px; left:auto; } </style>
<script> window.onload=function(){ var left_btn =document.getElementById("left-btn"); var right_btn=document.getElementById("right-btn"); var carousel =document.getElementById("carousel"); var lis =carousel.getElementsByTagName("li"); var lock =false; //将类名保存在数组内 var classes=["left2","left1","king","right1","right2","bench-warmer","bench-warmer","bench-warmer","bench-warmer"]; right_btn.onclick=function(){ if(lock==false){ //设置定时器 lock=true; setTimeout(function(){ lock=false; },1000 ) classes.unshift(classes.pop()); //得到所有的类名 for(var i=0;i<classes.length;i++){ lis[i].className=classes[i]; } } } left_btn.onclick=function(){ if(lock==false){ lock=true; setTimeout(function(){ lock=false; },1000) //增删数组 classes.push(classes.shift()); // 遍历修改完的数组 for(var i=0;i<classes.length;i++){ lis[i].className=classes[i]; } } } //设置一个定时器自动增删数组 var time=null; //获取到最大的Div作为事件源 var big=document.getElementById("big") function start(){ time=setInterval(function(){ classes.unshift(classes.pop()); //得到所有的类名 for(var i=0;i<classes.length;i++){ lis[i].className=classes[i]; } },2000); } start() big.onmouseover=function(){ clearInterval(time); } big.onmouseout=function(){ //当鼠标移除后再启动定时器 start() } } </script>
<div id="big"> <div class="carousel-wrapper"> <ul id="carousel"> <li class="left2"><img src="images/50/1.jpg" alt=""></li> <li class="left1"><img src="images/50/2.jpg" alt=""></li> <li class="king"><img src="images/50/3.jpg" alt=""></li> <li class="right1"><img src="images/50/4.jpg" alt=""></li> <li class="right2"><img src="images/50/5.jpg" alt=""></li> <li class="bench-warmer"><img src="images/50/6.jpg" alt=""></li> <li class="bench-warmer"><img src="images/50/7.jpg" alt=""></li> <li class="bench-warmer"><img src="images/50/8.jpg" alt=""></li> <li class="bench-warmer"><img src="images/50/9.jpg" alt=""></li> </ul> <span id="left-btn"><</span> <span id="right-btn">></span> </div> </div>
以上是关于CSS3动画效果结合JS的轮播的主要内容,如果未能解决你的问题,请参考以下文章