輪播

函數(shù)調(diào)用的的方法:


1,c()

2.c就是函數(shù)默認(rèn)提供的方法、函數(shù);

3.c.apply(),apply是改變 this(當(dāng)前的值)如果c未定義,那么this的默認(rèn)是window
1,全局變量(信號(hào)量)
2,排他模型
  (1)全變黃
 (2)當(dāng)前顯示的變紅```

呼吸輪播圖的思路:
1,透明底切換
animate(物體,{"opacity":1},1000)不透明;
animate(物體,{"opacity":0},1000)透明;

傳統(tǒng)輪播圖的js的步驟:

//得到元素
        var carousel = document.getElementById("carousel");
        var leftBtn = document.getElementById("leftBtn");
        var rightBtn = document.getElementById("rightBtn");
        var circles = document.getElementById("circles");
        var m_unit = document.getElementById("m_unit");
        var imageUL = m_unit.getElementsByTagName("ul")[0];
        var imageLis = imageUL.getElementsByTagName("li");
        var circlesLis = circles.getElementsByTagName("li");
        //克隆前我們得到個(gè)數(shù)
        var length = imageLis.length;
        //魔術(shù)的準(zhǔn)備就是克隆第一張li,放到最后
        imageUL.appendChild(imageLis[0].cloneNode(true));
        //信號(hào)量```
        var idx = 0;```
        //自動(dòng)輪播```
        var timer = setInterval(rightBtnHandler,options.interval);```
        //鼠標(biāo)進(jìn)入停止,離開繼續(xù)
    carousel.onmouseover = function(){
        clearInterval(timer);
    }
    carousel.onmouseout = function(){
        timer = setInterval(rightBtnHandler,options.interval);
    }
        //監(jiān)聽

        rightBtn.onclick = rightBtnHandler;

        //右按鈕的事件處理函數(shù)

        function rightBtnHandler(){

            //函數(shù)截流

            if(m_unit.isanimated) return;

            //信號(hào)量的變化

            idx++;

            //改變小圓點(diǎn)

            changeCircles();

            //運(yùn)動(dòng)機(jī)構(gòu)的移動(dòng)

            animate(m_unit,{"left" : -options.width * idx},options.animatetime,options.tween,function(){
                if(idx > length - 1){
                    idx = 0;
                    m_unit.style.left = "0px";
                }
            });
        }

        //監(jiān)聽

        leftBtn.onclick = function(){
            //函數(shù)截流

            if(m_unit.isanimated) return;
            //信號(hào)量的變化
            idx--;
            if(idx < 0){
                idx = length - 1;
                m_unit.style.left = -options.width * length + "px";
            }

            //改變小圓點(diǎn)

            changeCircles();
            
            animate(m_unit,{"left" : -options.width * idx},options.animatetime,options.tween);
        }

        //小圓點(diǎn)的監(jiān)聽

        for (var i = 0; i < circlesLis.length; i++) {
            circlesLis[i].index = i;
            circlesLis[i].onclick = function(){
                //信號(hào)量就是自己的序號(hào)
                idx = this.index;
                //拉動(dòng)
                animate(m_unit,{"left" : -options.width * idx},options.animatetime,options.tween);
                //改變小圓點(diǎn)
                changeCircles();
            }
        }
        //根據(jù)信號(hào)量設(shè)置小圓點(diǎn)
    function changeCircles(){
        //idx可能是5,但是我們的小圓點(diǎn)下標(biāo)最大是4,所以用n過渡一下:
        var n = idx > length - 1 ? 0 : idx;
        //排他
        for (var i = 0; i < circlesLis.length; i++) {
            circlesLis[i].className = "";
        }
        circlesLis[n].className = "cur";
    }
</script>
間隙輪播:

// 測(cè)試下是否會(huì)提交!
        //得到所有元素
    var ul = document.getElementsByTagName("ul")[0];
    var lis = document.getElementsByTagName("li");
    var length = lis.length;
    //復(fù)制所有l(wèi)i,追加到ul里
    ul.innerHTML += ul.innerHTML;
    //信號(hào)量
    var idx = 0;
    //模擬右按鈕的業(yè)務(wù)
    function move(){
        idx++;
        // ul -> elem
        //  callback   elem -> this
        //  ul -> this
        animate(ul,{"top":-40 * idx},800,function(){
            if(idx > length - 1){
                idx = 0;
                this.style.top = "0px";
            }
        });
    }
```
    //調(diào)用動(dòng)畫函數(shù)的間隔時(shí)間,要遠(yuǎn)大于動(dòng)畫運(yùn)行時(shí)間
    //這時(shí)就給人感覺一個(gè)間歇的過程
        setInterval(move, 1800);
        
    </script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容