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>
时间: 2024-11-05 00:42:41

CSS3动画效果结合JS的轮播的相关文章

js实现轮播图效果(附源码)--原生js的应用

1.js实现轮播图效果 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="Author" content="奇客艺术"> <meta name="keyword" content="关键字"> <meta name=

js网站轮播图怎么做如何做?鸡哥教你简单制作效果炫酷

日了狗啦,刚刚鸡哥辛苦码了那么多字全丢了又要重新写,这是第二遍写了...今天鸡哥给小白写个不需要写js原生代码,只需要几个插件和一段通俗易懂得jquery代码就能搞定的轮播图,当然js原生代码写着也不算很繁琐,但是有些浪费时间,更何况很多人并不会用js直接写包括鸡哥,当年在学校还是研究过一段时间js的,当时还独自写了一个轮播图俘获了多少同班妹子的芳心,不过现在是基本废了,这东西要常写,不然忘的很快. 唉,本来还有妹子等着鸡哥呢,我这一大意文章丢了,重新写的话估计来不及了,先打个电话让妹子回家吧~

Bounce.js – 快速创建漂亮的 CSS3 动画效果

Bounce.js 是一个用于制作漂亮的 CSS3 关键帧动画的 JavaScript 库,使用其特有的方式生成的动画效果.只需添加一个组件,选择预设,然后你就可以得到一个短网址或者导出为 CSS 代码. 您可能感兴趣的相关文章 太赞了!超炫的页面切换动画效果[附源码下载] 创意无限!一组网页边栏过渡动画[附源码下载] 好东西!动感的页面加载动画效果[附源码下载] 使用 CSS3 实现3D图片滑块效果[附源码下载] 时尚设计!三种奇特网格加载效果[附源码下载] 源码下载      在线演示 本文

javascript效果:手风琴、轮播图、图片滑动

最近都没有更,就来几个效果充实一下. 都没有进行美化这步. 手风琴: 纯css: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>手风琴css</title> <style> .showBox{ width: 660px; overflow: hidden; } ul{ list-style:

CSS3 动画效果带来的bug

css3 动画效果比如transition:all 2s linear;这种用来计算及时的物体坐标的话会带来一定的问题 比如把一个DIV从A点移动到B点.JS为DIV.style.left=B; 但是当我们使用上面的transition属性后,A点移动到B点是2秒内完成的,当执行JS代码时候,DIV还没到应该的位置,那么,在Div.style.left=B; console.log(Div.offsetLeft); 这样console出来的是起点坐标而不是终点坐标. 即使你让其JS线程主动挂起使

js实现轮播图(二)

在上一篇的基础上,增加了左右箭头的响应事件,实现了点击左右箭头也可以让图片滚动: js代码如下: window.onload = function(){ //轮播初始化   var lunbo  = document.getElementById('content');   var imgs = lunbo.getElementsByTagName('img');     var uls = lunbo.getElementsByTagName('ul');           var lis 

基于css和js的轮播效果图实现

基于css和js的轮播效果图实现 第一篇:效果图 1.先啥也不说直接上效果图 第二篇:详细讲解 1.  建立容器  #box 给其设置相关属性(注意:overflow:hidden;) 2.  Box中包括有ul li 以及a标签.在图片描述的时候,确保span所在层置顶. 3. <div class="innerText"> </div> <span class="innerText1">第一辆车</span> 另外

tween.js可生成平滑动画效果的js动画库

tween.js是一款可生成平滑动画效果的js动画库.tween.js允许你以平滑的方式修改元素的属性值.它可以通过设置生成各种类似CSS3动画效果.相关的jquery插件还有:snabbt.js 强大的jQuery动画库插件和Tweene-超级强大的jQuery动画代理插件. tween.js允许你以平滑的方式修改元素的属性值.你只需要告诉tween你想修改什么值,以及动画结束时它的最终值是什么,动画花费多少时间等信息,tween引擎就可以计算从开始动画点到结束动画点之间值,来产生平滑的动画效

用原生js封装轮播图

原生js封装轮播图 对于初学js的同学来说,轮播图还是一个难点,尤其是原生js封装轮播图代码,下面是我之前做的一个轮播图项目中封装好的一些代码,有需要的同学可以看一下,有什么不懂的可以看注释,注释看不懂的可以直接私信我 slide.js /* * 轮播图 */ function Slide(elem, ms, d, ind){ this.el = elem; this.w = parseInt(getStyle(elem, "width")); this.h = parseInt(ge