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">&lt;</span>
            <span id="right-btn">&gt;</span>
        </div>
    </div>

 

以上是关于CSS3动画效果结合JS的轮播的主要内容,如果未能解决你的问题,请参考以下文章

原生JS实现过渡效果的轮播图

使用css3实现简单的轮播图效果

使用css3实现简单的轮播图效果

使用css3实现简单的轮播图效果

js 多动画轮播效果

请问这个不用js的轮播效果是怎么弄的?