11.网易轮播

完美代码
<script>
window.onload = function () {
//1.获取标签
var slider = document.getElementById('slider');
var slider_scroll = document.getElementById('slider_scroll');
var slider_ctrl = document.getElementById('slider_ctrl');
var slider_main = document.getElementById('slider_main');
var slider_pics = slider_main.children;
var slider_w = slider.offsetWidth;
var iNow = 0;//用来记录当前显示的图片的索引

    //2.操作标签
    //2.1添加span,用来控制下面的跳转
    for(var i= 0;i < slider_pics.length;i ++){
        //创建span
        var mySpan = document.createElement('span');
        //2.11绑定索引
        mySpan.innerHTML = slider_pics.length - i;
        mySpan.className = 'slider-ctl-icon';
        //插入span,每次都插入到 第2个标签之前 (2对应的索引是1)
        slider_ctrl.insertBefore(mySpan,slider_ctrl.children[1]);


    }
    slider_ctrl.children[1].className = 'slider-ctl-icon current';

    //2.2让除了第一张图片,都放在第一张图片的后面
    //遍历除了第一张的图片
    for(var i = 1;i < slider_pics.length;i++){
        slider_pics[i].style.left = slider_w +'px';

    }
    //2.3点击span,做对应的操作
    //遍历span
    for(var i = 0;i < slider_ctrl.children.length;i ++){
        //2.31取出span
        var mySpan = slider_ctrl.children[i];
        //2.32点击span,判断类型,然后做对应的操作
        mySpan.onmousedown = function () {
            //根据类名来判断点击了那个span
            if(this.className == 'slider_left'){

                //让当前图片移动到右边,我们需要搞一个值用来记录当前显示的图片
                buffer(slider_pics[iNow],{left:slider_w});
                //让上张图片快速定位到左边
                iNow --;
                if (iNow < 0){
                    iNow = slider_pics.length - 1;
                }
                slider_pics[iNow].style.left = -slider_w +'px';
                //让上一张图片快速移动到当前的位置
                buffer(slider_pics[iNow],{left:0});


            }else if(this.className == 'slider_right'){

                //当前图片左移
                buffer(slider_pics[iNow],{left:-slider_w});
                iNow ++;
                if (iNow > slider_pics.length -1){
                    iNow = 0;
                }
                //让下一张图片快递定位到右边
                slider_pics[iNow].style.left = slider_w + 'px';
                //让下一张图片移动到当前的位置
                buffer(slider_pics[iNow],{left:0});




            }else {

                //我们要获取点击的span的索引,要和当前的图片比较
                //一般做法:就是在创建span的时候绑定索引
                var index = this.innerHTML - 1;
              //判断
                if(index > iNow){//点击右边

                    //让当前的图片快速左移
                    buffer(slider_pics[iNow],{left:-slider_w});
                    //让索引对应的值快速定位右边
                    //让当前的值等于index
                   iNow = index;
                    slider_pics[index].style.left = slider_w + 'px';

                    //让索引对应的值快速移动到当前位置
                    buffer(slider_pics[iNow],{left:0});


                }else if(index < iNow){//左边
                    //让当前的图片快速右移
                    buffer(slider_pics[iNow],{left:slider_w});
                    //让索引对应的值快速定位左边
                    //让当前的值等于index
                    iNow = index;
                    slider_pics[index].style.left = -slider_w + 'px';

                    //让索引对应的值快速移动到当前位置
                    buffer(slider_pics[iNow],{left:0});


                }

            }

            //更新索引
            changeIndex();

        }
    }


    //3.更新索引
    function  changeIndex(indx) {

        //就是让当前索引对应的span显示对应的颜色,其他原来的颜色
        //使用排他
        for(var i = 1;i < slider_ctrl.children.length -1;i ++){

            slider_ctrl.children[i].className = 'slider-ctl-icon';

        }
        slider_ctrl.children[iNow +1].className = 'slider-ctl-icon current'

    }

    //4自动滚动
    var timer = setInterval(autoPlay,1000)

    /*抽取自动滚动的函数
    * */
    function autoPlay() {

        //相当于点击了右键
        //当前图片左移
        buffer(slider_pics[iNow],{left:-slider_w});
        iNow ++;
        if (iNow > slider_pics.length -1){
            iNow = 0;
        }
        //让下一张图片快递定位到右边
        slider_pics[iNow].style.left = slider_w + 'px';
        //让下一张图片移动到当前的位置
        buffer(slider_pics[iNow],{left:0});

        //更新索引
        changeIndex();



    }
    //5.当移动到slider,停止定时器,离开就开启定时器
    slider.onmouseover = function () {
        clearInterval(timer);
    }
    slider.onmouseout = function () {
        timer = setInterval(autoPlay,1000);
    }



}

</script>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容