window.onload = function(){
var oList = document.getElementsByTagName('li');
for (var i = 0; i < oList.length; i++) {
oList[i].timer=null;
oList[i].onmouseover=function(){
startMove(this,'width',400,function(){
startMove(this,'height',200);
});
}
oList[i].onmouseout=function(){
startMove(this,'height',100,function(){
startMove(this,'width',200);
});
}
}
//获取属性
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}else{
return getComputedStyle(obj,false)[attr];
}
}
function startMove(obj,attr,iTarget,fn){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
obj.alpha=30;
var icur =null;
//1.判断类型
if(attr=='opacity'){
icur=Math.round(parseFloat(getStyle(obj,attr))*100);
}
else{
icur= parseInt(getStyle(obj,attr));
}
//计算速度
var speed =(iTarget-icur)/8;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
//3.检测停止
if(icur == iTarget){
clearInterval(obj.timer);
if(fn){ //判断是否存在回调函数,并回调
fn();
}
}else{
if(attr=='opacity'){
obj.style.filter='alpha(opacity:'+(icur+speed)+')';
obj.style.opacity=(icur+speed)/100;
}else{
obj.style[attr]= icur +speed+'px';
}
}},30);
}}
stone310
相关分类