问题描述
- 请问bstop在这段代码中的作用?以及“:'+(iCur+iSpeed)+'”中左右两个加号的意思?
-
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设置的值的要求。
时间: 2025-01-20 22:16:15