首页 新闻 会员 周边 捐助

表达式问题??

0
悬赏园豆:20 [已解决问题] 解决于 2012-12-11 10:39
function $(id){return document.getElementById(id);}

window.onload=function(){
    var oDiv=$('miaov_float_layer');
    var oBtnMin=$('btn_min');
    var oBtnClose=$('btn_close');
    var oDivContent=oDiv.getElementsByTagName('div')[0];    
    var iMaxHeight=0;    
    oDiv.style.display='block';
    iMaxHeight=oDivContent.offsetHeight;
    oDiv.style.position='absolute';
    repositionFixed();
    oBtnMin.timer=null;
    oBtnMin.isMax=true;
    oBtnMin.onclick=function(){
       startMove(oDivContent,(this.isMax=!this.isMax)?iMaxHeight:0,function(){oBtnMin.className=oBtnMin.className=='min'?'max':'min';});
    };//(this.isMax=!this.isMax)这个判断叫什么,为什么这样
    oBtnClose.onclick=function(){oDiv.style.display='none';};
};
function startMove(obj,iTarget,fnCallBackEnd){
   if(obj.timer){clearInterval(obj.timer);}
   obj.timer=setInterval(function(){doMove(obj,iTarget,fnCallBackEnd);},30);
}

function doMove(obj,iTarget,fnCallBackEnd){
   var iSpeed=(iTarget-obj.offsetHeight)/8;
   if(obj.offsetHeight==iTarget){
      clearInterval(obj.timer);
      obj.timer=null;
      if(fnCallBackEnd){fnCallBackEnd();}//这个是回调吗?回调是什么东西
   }else{
      iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
      obj.style.height=obj.offsetHeight+iSpeed+'px';
      repositionFixed();
   }
}
function repositionFixed(){
    var oDiv=$('miaov_float_layer');
    var width=document.documentElement.clientWidth;
    var height=document.documentElement.clientHeight;
    oDiv.style.left=width-oDiv.offsetWidth+'px';
    oDiv.style.top=height-oDiv.offsetHeight+'px';
}
严文Live2012的主页 严文Live2012 | 初学一级 | 园豆:36
提问于:2012-12-11 08:31
< >
分享
最佳答案
0
if(fnCallBackEnd){fnCallBackEnd();} 意思是判断是否有这个回调函数,有就调用。。。当然也可以不传函数,就不会调用了

this.isMax=!this.isMax,意思是将this.isMax取反,并判断取反后的this.isMax是否为真。因为这里是一个三目运算式。
收获园豆:20
十年灯 | 菜鸟二级 |园豆:356 | 2012-12-11 09:30
其他回答(1)
0
this.isMax=!this.isMax
直接取反
chenping2008 | 园豆:9836 (大侠五级) | 2012-12-11 09:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册