window.onload?=?function()?{
//容器對象
var?box?=?document.getElementById("container");
var?imgs?=?box.getElementsByTagName("img");
//單張圖片的寬度
var?imageWidth?=?imgs[0].offsetWidth;
//設(shè)置掩蓋門體露出的寬度
var?exposeWidth?=?160;
//設(shè)置容器總寬度
var?boxWidth?=?imageWidth?+?exposeWidth?*?(imgs.length?-?1);
box.style.width?=?boxWidth?+?"px";
//設(shè)置每道門?的初始位置
function?setImgsPos()?{
for(var?i=1,len=imgs.length;?i<len;?i++)?{
imgs[i].style.left?=?imageWidth?+?exposeWidth?*?(i?-?1)?+?"px";??
}
}
setImgsPos();
//緩沖
function?startMove(obj,?iTarget)?{
clearInterval(obj.timer);
obj.timer?=?setInterval(function()?{
var?speed?=?(iTarget?-?obj.offsetLeft)/10;
speed?=?speed>0???Math.ceil(speed)?:?Math.floor(speed);
if(obj.offsetLeft?==?iTarget)?{
clearInterval(obj.timer);
}?else?{
obj.style.left?=?obj.offsetLeft?+?speed?+"px";
}
}?,30);
}
//計(jì)算每道門打開時(shí)應(yīng)移動(dòng)的距離
var?translate?=?(imageWidth?-?exposeWidth);
//為每道門邦定事件
for(var?i=0,len=imgs.length;?i<len;?i++)?{
//匿名函數(shù)獲取不同的i值
(function(i)?{
// imgs[i].timer?=?null;
imgs[i].onmouseover?=?function()?{
// setImgsPos();
for(var?j=1;?j<=i;?j++)?{
var?iTarget?=?(imageWidth?+?exposeWidth?*?(j?-?1)?-?translate);?
startMove(imgs[j],?iTarget);
//如果想只是單張移動(dòng),如下:
// startMove(this,?iTarget);
}
}
imgs[i].onmouseout?=?function()?{
// setImgsPos();
for(var?j=1;?j<=i;?j++)?{
var?iTarget?=?(imageWidth?+?exposeWidth?*?(j?-?1));?
startMove(imgs[j],?iTarget);
//如上,單張:
// startMove(this,?iTarget);
}
}
})(i)
}
}
2016-09-23
我還想為每個(gè)滑動(dòng)門加上 透明效果 就是 mouseover的時(shí)候 為不透明 ? mouseout的時(shí)候是覆蓋著透明的黑色...我怎么弄都弄不出來
2016-09-23
2016-09-23
2016-09-23
為什么不用清除定時(shí)器吶?