分享:JavaScript常见应用集合

 

版权所有:刺桐红-技术工作室  蓝文雄

声明:分享类型的文章均为我们工作室为了项目需求封装的工具类,本着分享合作的信念,其中如有错误,欢迎来信交流

lwx707@hotmail.com  2008-08-21

 

这个博文持续完善中……

 

(1)在事件发生处弹出一个面板(Div):

///显示面板函数,参数:event-触发事件event;id-需要显示的DivID;wWidth-DIVID的宽度
function showBox(event,id,wWidth)
{

 //获取事件发生位置
 var objPos = mousePosition(event);

 var box = document.getElementById(id);
 //设置box显示位置,pos.x参考IE中Event x y属性
 var styleStr="left:"+(((objPos.x-wWidth)>0)?(objPos.x-wWidth):objPos.x)+"px;top:"+(objPos.y)+"px;position:absolute;width:"+wWidth+"px;";
 box.style.cssText = styleStr;
 document.body.appendChild(box);
 
 //关闭窗口,参数:id-需要显示的boxID,实际应用时需要独立处理
 function closeBox(id)
 {
  if(document.getElementById(id)!=null)
  {
   document.getElementById(id).parentNode.removeChild(document.getElementById(id));
  }
 }
  
 //位置抓取函数,参数:出发事件event
 function mousePosition(ev)
 {
  if(ev.pageX || ev.pageY)
  {
   return {x:ev.pageX, y:ev.pageY};
  }
  return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY + document.body.scrollTop - document.body.clientTop};
 }   
}

 

(2)触发事件时产生覆盖层

 

///覆盖层函数,其中结合显示box函数showBox(),参数:bgColor-覆盖层背景颜色;event-触发事件event;id-需要显示的boxID;wWidth-boxID的宽度
function showLayDIV(bgColor,event,id,wWidth)
{
 //获取可见区域 宽度 高度
 var bWidth=parseInt(document.body.clientWidth);
 var bHeight=parseInt(document.body.clientHeight);
 //var bWidth=parseInt(document.documentElement.scrollWidth);
 //var bHeight=parseInt(document.documentElement.scrollHeight);
 
 var isIe=(document.all)?true:false;
 var overlayout=document.createElement("div");
 //设置ID,应用于function closeBox()
 overlayout.id="overlayout";
 var styleStr="top:0px;left:0px;position:absolute;background:"+bgColor+";width:"+bWidth+"px;height:"+bHeight+"px;";
 styleStr+=(isIe)?"filter:alpha(opacity=50);":"opacity:0.40;";
 overlayout.style.cssText=styleStr;
 document.body.appendChild(overlayout);
 showBox(event,id,wWidth);
 //覆盖层渐变效果
 showBackground(overlayout,100);
 
}

 

 //覆盖层渐变效果
 function showBackground(obj,endInt)
 {
  obj.filters.alpha.opacity+=1;
  if(obj.filters.alpha.opacity<endInt)
  {
   setTimeout(function(){showBackground(obj,endInt)},10);
  }
 }

 function closeBox(id)
 {
  if(document.getElementById('overlayout')!=null)
  {
   document.getElementById('overlayout').parentNode.removeChild(document.getElementById('overlayout'));
  }
  if(document.getElementById(id)!=null)
  {
   document.getElementById(id).parentNode.removeChild(document.getElementById(id));
  }
 }

 

 

posted @ 2008-08-23 11:16  蓝色乌托邦  阅读(215)  评论(0编辑  收藏  举报