11.網(wǎng)易輪播

完美代碼
<script>
window.onload = function () {
//1.獲取標(biāo)簽
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;//用來記錄當(dāng)前顯示的圖片的索引

    //2.操作標(biāo)簽
    //2.1添加span,用來控制下面的跳轉(zhuǎn)
    for(var i= 0;i < slider_pics.length;i ++){
        //創(chuàng)建span
        var mySpan = document.createElement('span');
        //2.11綁定索引
        mySpan.innerHTML = slider_pics.length - i;
        mySpan.className = 'slider-ctl-icon';
        //插入span,每次都插入到 第2個(gè)標(biāo)簽之前 (2對(duì)應(yīng)的索引是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點(diǎn)擊span,做對(duì)應(yīng)的操作
    //遍歷span
    for(var i = 0;i < slider_ctrl.children.length;i ++){
        //2.31取出span
        var mySpan = slider_ctrl.children[i];
        //2.32點(diǎn)擊span,判斷類型,然后做對(duì)應(yīng)的操作
        mySpan.onmousedown = function () {
            //根據(jù)類名來判斷點(diǎn)擊了那個(gè)span
            if(this.className == 'slider_left'){

                //讓當(dāng)前圖片移動(dòng)到右邊,我們需要搞一個(gè)值用來記錄當(dāng)前顯示的圖片
                buffer(slider_pics[iNow],{left:slider_w});
                //讓上張圖片快速定位到左邊
                iNow --;
                if (iNow < 0){
                    iNow = slider_pics.length - 1;
                }
                slider_pics[iNow].style.left = -slider_w +'px';
                //讓上一張圖片快速移動(dòng)到當(dāng)前的位置
                buffer(slider_pics[iNow],{left:0});


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

                //當(dāng)前圖片左移
                buffer(slider_pics[iNow],{left:-slider_w});
                iNow ++;
                if (iNow > slider_pics.length -1){
                    iNow = 0;
                }
                //讓下一張圖片快遞定位到右邊
                slider_pics[iNow].style.left = slider_w + 'px';
                //讓下一張圖片移動(dòng)到當(dāng)前的位置
                buffer(slider_pics[iNow],{left:0});




            }else {

                //我們要獲取點(diǎn)擊的span的索引,要和當(dāng)前的圖片比較
                //一般做法:就是在創(chuàng)建span的時(shí)候綁定索引
                var index = this.innerHTML - 1;
              //判斷
                if(index > iNow){//點(diǎn)擊右邊

                    //讓當(dāng)前的圖片快速左移
                    buffer(slider_pics[iNow],{left:-slider_w});
                    //讓索引對(duì)應(yīng)的值快速定位右邊
                    //讓當(dāng)前的值等于index
                   iNow = index;
                    slider_pics[index].style.left = slider_w + 'px';

                    //讓索引對(duì)應(yīng)的值快速移動(dòng)到當(dāng)前位置
                    buffer(slider_pics[iNow],{left:0});


                }else if(index < iNow){//左邊
                    //讓當(dāng)前的圖片快速右移
                    buffer(slider_pics[iNow],{left:slider_w});
                    //讓索引對(duì)應(yīng)的值快速定位左邊
                    //讓當(dāng)前的值等于index
                    iNow = index;
                    slider_pics[index].style.left = -slider_w + 'px';

                    //讓索引對(duì)應(yīng)的值快速移動(dòng)到當(dāng)前位置
                    buffer(slider_pics[iNow],{left:0});


                }

            }

            //更新索引
            changeIndex();

        }
    }


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

        //就是讓當(dāng)前索引對(duì)應(yīng)的span顯示對(duì)應(yīng)的顏色,其他原來的顏色
        //使用排他
        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自動(dòng)滾動(dòng)
    var timer = setInterval(autoPlay,1000)

    /*抽取自動(dòng)滾動(dòng)的函數(shù)
    * */
    function autoPlay() {

        //相當(dāng)于點(diǎn)擊了右鍵
        //當(dāng)前圖片左移
        buffer(slider_pics[iNow],{left:-slider_w});
        iNow ++;
        if (iNow > slider_pics.length -1){
            iNow = 0;
        }
        //讓下一張圖片快遞定位到右邊
        slider_pics[iNow].style.left = slider_w + 'px';
        //讓下一張圖片移動(dòng)到當(dāng)前的位置
        buffer(slider_pics[iNow],{left:0});

        //更新索引
        changeIndex();



    }
    //5.當(dāng)移動(dòng)到slider,停止定時(shí)器,離開就開啟定時(shí)器
    slider.onmouseover = function () {
        clearInterval(timer);
    }
    slider.onmouseout = function () {
        timer = setInterval(autoPlay,1000);
    }



}

</script>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容