不知道哪里錯了,動不了~
function getStyle(obj,attr)
{
?? ?if(obj.currentStyle)
?? ?{
?? ??? ?return obj.currentStyle[attr];
?? ?}
?? ?else
?? ?{
?? ??? ?return getComputedStyle(obj,false)[attr];
?? ?}
}
function startMove(obj,json,fn)
{
?? ?clearInterval(obj.timer);
?? ?obj.timer=setInterval(function(){
?? ??? ?for(var attr in json)
?? ??? ?{?? var flag=true;//假設(shè)
?? ??? ??? ?//1.取當(dāng)前值
?? ??? ??? ?var iCur=0;
?? ??? ??? ?if(attr=='opacity')
?? ??? ??? ?{
?? ??? ??? ??? ?iCur=Math.round(parseFloat(getStyle(obj,attr))*100);?? ?
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?iCur=parseInt(getStyle(obj,attr));
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?//2.算速度
?? ??? ??? ?var iSpeed=(json[attr]-iCur)/8;
?? ??? ??? ?iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
?? ??? ??? ? //3.檢測停止
?? ??? ??? ?if(iCur!=json[attr])
?? ??? ??? ?{
?? ??? ??? ??? ?flag=false;
?? ??? ??? ?}
?? ??? ??? ?if(attr=='opacity')
?? ??? ??? ?{
?? ??? ??? ??? ?obj.style.filter='alpha(opacity:'+(iCur+iSpeed)+')';
?? ??? ??? ??? ?obj.style.opacity=(iCur+iSpeed)/100;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?obj.style[attr]=iCur+iSpeed+'px';
?? ??? ??? ?}
?? ??? ?}
?? ??? ?if (flag)
?? ??? ?{
?? ??? ??? ?clearInterval(obj.timer);
?? ??? ??? ?if(fn)
?? ??? ??? ?{
?? ??? ??? ??? ?fn();
?? ??? ??? ?}
?? ??? ?}
?? ?},30)
}
2015-11-10
var flag=true;放在for in循環(huán)外面,即定時器方法第一行;
2015-09-08
var flag=true;應(yīng)該定義在??clearInterval(obj.timer)上面
2015-09-06
進(jìn)入開發(fā)者工具,看看報錯信息,把報錯信息發(fā)出來