函數(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>