练习javascript oop编程,写的一个遮罩层

练习javascript oop编程,写的一个遮罩层

 

代码
 <script type="text/javascript" src="core/jquery-1.3.1.min.js"></script>
     <script type="text/javascript">
    
////////////////////////////////////////
    ///  author:seekarmor@yahoo.com.cn   ///
    ///  Practice of Js OOP programming  ///
    ///                                 ///
    //////////////////////////////////////
    
    
var MaskDig=(function(){
    
        
//返回弹出窗口的位置
    var digPos=function($f,$m){
            
var st =$f.scrollTop(); //滚动条距顶部的距离
            var sl =$f.scrollLeft(); //滚动条距左边的距离
            var ch =$f[0].clientHeight; //屏幕的高度
            var cw = $f[0].clientWidth; //屏幕的宽度
            var objH = $m.height(); //浮动对象的高度
            var objW = $m.width(); //浮动对象的宽度
            var objT = Number(st) + (Number(ch) - Number(objH)) / 2;
            
var objL = Number(sl) + (Number(cw) - Number(objW)) / 2;
            
return objT + "|" + objL;
         };
     
//遮罩层的样式
     var maskStyle={
            
"background-color""Gray",
            
"display":"none",
            
"z-index":"3",
            
"position":"absolute",
            
"left":"0px",
            
"top":"0px",
             
            
"filter":"Alpha(Opacity=30)",
            
/* IE */
            
"-moz-opacity":"0.4"
            
/* Moz + FF */
            
"opacity":"0.4"
            }
        
//弹出窗口的样式
     var digStyle= {
            
"position":"absolute",
            
"z-index":"4",
            
"font-size":"12px",
            
"text-align":"center",
            
"height":"34px",
            
"line-height":"34px",
            
"background-color":"#FFFFFF",
            
"border":"1px solid #993300"
            } 
      
var maskDiv="<div></div>";
      
var digDiv="<div><img src='images/Waiting9999.gif' /></div>";
      
return function(father){
      
var self=this;
      
this.maskID="fullBg";
      
this.digID="msg";
      
this.resscrEvt=function() {
            
var bjCss = self.$maskId.css("display");
            
if (bjCss == "block") {
            
var bH2 = self.$fathercon.get(0).scrollHeight;
            
var bW2 = self.$fathercon.get(0).scrollWidth;
            self.$maskId.css({
            width: bW2,
            height: bH2
            });
            
var objV = digPos(self.$fathercon,self.$msgId);
            
var tbT = objV.split("|")[0+ "px";
            
var tbL = objV.split("|")[1+ "px";
            self.$msgId.css({
            top: tbT,
            left: tbL
            });
            }
        }
        
        
//遮罩层的ID
        this.$msgId=$(digDiv);
        
this.$maskId=$(maskDiv);
        
this.$msgId.attr("id",this.digID).css(digStyle);
        
this.$maskId.attr("id",this.maskID).css(maskStyle);
        
       
if(father==document)
        {
            $(
"body").prepend(this.$msgId);
            $(
"body").prepend(this.$maskId);
            
this.$fathercon=$(document.documentElement);
            $(window).scroll(
this.resscrEvt);
            $(window).resize(
this.resscrEvt);
        }
        
else
        {
            $(father).prepend(
this.$msgId);
            $(father).prepend(
this.$maskId);
            
this.$fathercon=$(father);
            
this.$fathercon.scroll(this.resscrEvt);
            
this.$fathercon.resize(this.resscrEvt)
        }
         
//关闭灰色背景和操作窗口
        this.closeDig=function() {
            self.$maskId.hide();
            self.$msgId.hide();
        }
       
        
        
//显示遮罩层和窗口
        this.show=function(){
            
var bH = self.$fathercon.get(0).scrollHeight;
            
var bW = self.$fathercon.get(0).scrollWidth;
            self.$msgId.height(
40);
            self.$msgId.width(
200);
            
var objWH = digPos(self.$fathercon,self.$msgId);
            self.$maskId.css({
            width: bW
+"px",
            height: bH
+"px"
            }).show();
            
var tbT = objWH.split("|")[0+ "px";
            
var tbL = objWH.split("|")[1+ "px";
            self.$msgId.css({
            top: tbT,
            left: tbL
            }).show();
         }
      }   
    })();     
       

     
     

    
     $(
function(){
     
var tt= new MaskDig(document);
     tt.show();
     
var test=new MaskDig(".fa");
     test.show();
     
var test1= new MaskDig(".fa1");
     test1.show();
     });
     
</script>

 

 

posted @ 2010-03-07 14:49  ForFreeDom  阅读(486)  评论(0)    收藏  举报