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 (){
var bStop=true;
for(var attr in json)
{
var iCur=0;
if(attr=='opacity')
{
iCur=parseInt(parseFloat(getStyle(obj, attr))*100);
}
else
{
iCur=parseInt(getStyle(obj, attr));
}
var iSpeed=(json[attr]-iCur)/8;
iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
if(iCur!=json[attr])
{
bStop=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(bStop)
{
clearInterval(obj.timer);
if(fn)
{
fn();
}
}
}, 30)
}
万分感谢,不胜感激。
obj.style.filter='alpha(opacity:'+(iCur+iSpeed)+')';
'alpha(opacity:'表示字符串
')'表示字符串
如果和字符串相加,+加号表示字符串连接
(iCur+iSpeed)这小括号内是数字,就是数字加法运算
拼接字符串得到css
alpha(opacity:xxx)
这个是透明度
bstop是控制定时器是否停止的,当iCur==json[attr]时定时器就会停止,也就是动画停止。
第二个问题不知道,没用过java,也不知obj.style.filter设置的值的要求。