You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
4.2 KiB
124 lines
4.2 KiB
/***
|
|
* 涛涛Jquery弹出层插件
|
|
* 编写时间:2013年7月25号
|
|
***/
|
|
|
|
;(function(window,undefined){
|
|
var TTPopups=function(options)
|
|
{
|
|
this.opt=this.setOpt(options);
|
|
this.container=this.$(this.opt.content);
|
|
this.setup();
|
|
this.closePupus();
|
|
}
|
|
TTPopups.prototype={
|
|
setup:function(){
|
|
if(!this.opt.isAutoShow)return;
|
|
var oWrap=document.createElement('div'),
|
|
oTitle=document.createElement('div'),
|
|
oClose=document.createElement('div'),
|
|
oContent=document.createElement('div'),
|
|
oMark=document.createElement('div'),
|
|
w=this.opt.width-46,h=this.opt.height-4,
|
|
vieH=Math.max((document.documentElement.clientHeight||document.body.clientHeight),h),
|
|
vieW=Math.max((document.documentElement.clientWidth||document.body.clientWidth),w);
|
|
oTitle.style.cssText='height:42px;text-indent:10px;line-height:42px;color:#fff;background:#ec5151;overflow:hidden;';
|
|
oClose.style.cssText='margin:12px;*margin-top:-30px;width:17px;height:15px;float:right;background:url(themes/ecmoban_sc/images/close.png) no-repeat center;cursor:pointer';
|
|
var h1 = h+4;
|
|
var w1 = w+64
|
|
oWrap.style.cssText='opacity:0;filter:alpha(opacity:0);border:2px solid #333;position:absolute;z-index:99999;height:'+h+'px;width:'+w+'px;left:50%;top:22%;margin:-'+h1/2+'px 0 0 -'+w1/2+'px;background:#fff';
|
|
oMark.style.cssText='opacity:0;filter:alpha(opacity:0);height:'+vieH+'px;width:'+vieW+'px;position:absolute;z-index:9999;left:0;top:0;';
|
|
oContent.innerHTML=this.container.innerHTML;
|
|
oTitle.innerHTML=this.opt.title;
|
|
oTitle.appendChild(oClose);
|
|
oWrap.appendChild(oTitle);
|
|
oWrap.appendChild(oContent);
|
|
document.body.appendChild(oWrap);
|
|
document.body.appendChild(oMark);
|
|
|
|
this.oClose=oClose;
|
|
this.oWrap=oWrap;
|
|
this.oMark=oMark;
|
|
this.startMove(oWrap,100);
|
|
this.startMove(oMark,100);
|
|
},
|
|
closePupus:function()
|
|
{
|
|
if(!this.oClose)return;
|
|
this.addEvent(this.oClose,'click',this.bind(this,closefn));
|
|
function closefn()
|
|
{
|
|
var This=this;
|
|
this.startMove(this.oMark,0,function(){
|
|
document.body.removeChild(This.oMark);
|
|
if(typeof This.opt.closeCallBack==='function')
|
|
{
|
|
This.opt.closeCallBack();
|
|
}
|
|
})
|
|
this.startMove(this.oWrap,0,function(){
|
|
document.body.removeChild(This.oWrap);
|
|
})
|
|
}
|
|
},
|
|
bind:function(o,fn)
|
|
{
|
|
return function(){
|
|
return fn.apply(o,arguments)
|
|
}
|
|
},
|
|
setOpt:function(o)
|
|
{
|
|
var defaultOptions={
|
|
title:'物流查询',//title
|
|
content:'TTPopups', //请传入ID,或DOM对象
|
|
width:600,
|
|
height:300, //弹出层大小
|
|
closeCallBack:null, //关闭执行的回调函数
|
|
isAutoShow:false //自动显示
|
|
};
|
|
if(o && Object.prototype.toString.call(o)=='[object Object]')
|
|
{
|
|
for(var k in o)
|
|
{
|
|
defaultOptions[k]= typeof o[k]==='undefined' ? defaultOptions[k] : o[k];
|
|
}
|
|
}
|
|
return defaultOptions;
|
|
},
|
|
$:function(s)
|
|
{
|
|
return typeof s==='string' ? document.getElementById(s) : s;
|
|
},
|
|
addEvent: function(e, n, o){
|
|
if(e.addEventListener){
|
|
e.addEventListener(n, o,false);
|
|
} else if(e.attachEvent){
|
|
e.attachEvent('on' + n, o);
|
|
}
|
|
},
|
|
startMove:function(obj,t,callBack)
|
|
{
|
|
clearInterval(obj.t);
|
|
var This=this;
|
|
obj.t=setInterval(function(){
|
|
var iCur=This.getStyle(obj,'opacity').toFixed(2)*100,iSpeed=(t-iCur)/10;
|
|
iSpeed=iSpeed>0 ? Math.ceil(iSpeed): Math.floor(iSpeed);
|
|
obj.style.filter='alpha(opacity:'+(iSpeed+iCur)+')';
|
|
obj.style.opacity=(iCur+iSpeed)/100;
|
|
if(iCur==t)
|
|
{
|
|
clearInterval(obj.t);
|
|
if(typeof callBack==='function')callBack();
|
|
}
|
|
},50)
|
|
},
|
|
getStyle:function(o,a)
|
|
{
|
|
return o.currentStyle ? parseFloat(o.currentStyle[a]) : parseFloat(getComputedStyle(o,false)[a]);
|
|
}
|
|
}
|
|
|
|
window.TTPopups=TTPopups;
|
|
|
|
})(window,undefined);
|