zoukankan      html  css  js  c++  java
  • 图片轮播

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>图片轮播-v2</title>
    <style>

    ul{
    margin: 0;
    padding: 0;
    list-style: none;

    }

    .sliderWrap{
    200px;
    height: 112px;
    overflow: hidden;
    margin: 0 auto;
    }
    .sliderWrap ul{
    position: relative;
    1000px;
    transition: left .5s ease;
    left: 0;
    }
    .sliderWrap li{
    position: relative;
    float: left;
    }
    .sliderWrap ul li img{
    100%;
    }
    </style>
    </head>
    <body>
    <div class="sliderWrap">
    <ul id="slider">
    <li><img src="images/slider/slider1.jpg" alt=""></li>
    <li><img src="images/slider/slider2.jpg" alt=""></li>
    <li><img src="images/slider/slider3.jpg" alt=""></li>
    <li><img src="images/slider/slider4.jpg" alt=""></li>
    </ul>
    </div>
    <input type="button" value="click me" id="next"/>
    <script>
    /**
    * 图片轮播
    * @type {Element}
    */
    var btn = document.getElementById("next");
    var dom = document.getElementById("slider");
    var liArr = dom.getElementsByTagName("li");

    var curWidth = 200;
    var ulWidth = curWidth * liArr.length;
    var show = [];
    var circle = [];

    var goAway = "translate(-" + curWidth +"px, 0) translateZ(0px)";
    var goIn = "translate(0, 0) translateZ(0px)";
    var goPre = "translate(" + curWidth +"px, 0) translateZ(0px)";

    //保证所有li在ul中能在一行内放下
    dom.style.width = ulWidth + "px";

    for(var i = 0, len = liArr.length; i < len; i++){
    var curLi = liArr[i];

    curLi.setAttribute("data-index", i);
    curLi.style.width = curWidth + "px";

    if(i == 0){
    curLi.style.left = 0;
    show.push(curLi);
    }else{
    curLi.style.left = - curWidth * i + "px";
    if(i > 1){
    translate(curLi, goAway, '')
    circle.push(curLi);
    }else{
    show.push(curLi);
    translate(curLi, goPre, '');
    }
    }


    }

    circle.reverse();

    btn.onclick = function(){
    //已展示的图片滚粗
    var showFirst = show.shift();
    translate(showFirst, goAway, "300ms");

    //正在展示的图片
    translate(show[0], goIn, "300ms");
    circle.splice(0, 0, showFirst);

    //准备好下一个将要展示的图片
    var nextPre = circle.pop();
    translate(nextPre, goPre, "0ms");
    show.push(nextPre);

    };

    function translate(dom, goType, time){
    dom.style.transform =
    dom.style.webkitTransform =
    dom.style.mozTransform =
    dom.style.msTransform =
    dom.style.oTransform = goType;

    dom.style.transitionDuration =
    dom.style.webkitTransitionDuration =
    dom.style.mozTransitionDuration =
    dom.style.msTransitionDuration =
    dom.oTransitionDuration = time;


    }

    </script>
    </body>
    </html>

  • 相关阅读:
    java 基础中的字符串
    Java中的基本数据类型
    js 实现焦点图轮播效果和 jquery实现焦点图轮播效果
    Html中 value 和 name 属性的作用
    分别用js 和 html/css实现下拉菜单特效
    divide-conquer-combine(4.1 from the introduction to algorithm)
    1063. Set Similarity (25)
    1085. Perfect Sequence (25)
    1015. Reversible Primes (20)
    1057. Stack (30)
  • 原文地址:https://www.cnblogs.com/hejianrong/p/5788496.html
Copyright © 2011-2022 走看看