jQuery 弹出层插件(推荐)
最近在研究弹出层插件时发现网上很多插件功能很强大,同时插件也很庞大。在这里个人写了一个比较秀珍的弹出层插件。
jquery.popdialog.js
$(function(){
$.fn.PopDialog=function(options){
vardefaults={
Event:"click",//触发响应事件
title:"title",//弹出层的标题
type:"text",//弹出层类型(text、容器ID、URL、Iframe)
content:"content",//弹出层的内容(text文本、容器ID名称、URL地址、Iframe的地址)
width:500,//弹出层的宽度
height:400,//弹出层的高度
scrollTop:200,//层滑动的高度也就是弹出层时离顶部滑动的距离
isAuto:false,//是否自动弹出
time:2000,//设置自动弹出层时间,前提是isAuto=true
isClose:false,//是否自动关闭
timeOut:2000//设置自动关闭时间,前提是isClose=true
};
varoptions=$.extend(defaults,options);
$("body").prepend("<divid='floatBoxBg'></div><divid='floatBox'class='floatBox'><divclass='title'><h4></h4><spanid='closeDialog'>X</span></div><divclass='content'></div></div>");
var$this=$(this);//当然响应事件对象
var$blank=$("#floatBoxBg");//遮罩层对象
var$title=$("#floatBox.titleh4");//弹出层标题对象
var$content=$("#floatBox.content");//弹出层内容对象
var$dialog=$("#floatBox");//弹出层对象
var$close=$("#closeDialog");//关闭层按钮对象
varstc,st;
if($.browser.msie&&($.browser.version=="6.0")&&!$.support.style){//判断IE6
$blank.css({height:$(document).height(),width:$(document).width()});
}
$close.live("click",function(){
$blank.animate({opacity:"0"},"normal",function(){$(this).hide();});
$dialog.animate({top:($(document).scrollTop()-parseInt(options.height))+"px"},"normal",function(){$(this).hide();});
if(st){
clearTimeout(st);//清除定时器
}
if(stc){
clearTimeout(stc);//清除定时器
}
});
$content.css("height",parseInt(options.height)-70);
//文本框绑定事件
$this.live(options.Event,function(e){
$title.html(options.title);
switch(options.type){
case"url"://当类型是地址的时候
$content.ajaxStart(function(){
$(this).html("loading...");
});
$.get(options.content,function(html){
$content.html(html);
});
break;
case"text"://当类型是文本的时候
$content.html(options.content);
break;
case"id"://当类型是容器ID的时候
$content.html($("#"+options.content+"").html());
break;
case"iframe"://当类型是Iframe的时候
$content.html("<iframesrc=\""+options.content+"\"width=\"100%\"height=\""+(parseInt(options.height)-70)+"px"+"\"scrolling=\"auto\"frameborder=\"0\"marginheight=\"0\"marginwidth=\"0\"></iframe>");
break;
default://默认情况下的时候
$content.html(options.content);
break;
}
$blank.show();
$blank.animate({opacity:"0.5"},"normal");
$dialog.css({display:"block",left:(($(document).width())/2-(parseInt(options.width)/2))+"px",top:($(document).scrollTop()-parseInt(options.height))+"px",width:options.width,height:options.height});
$dialog.animate({top:options.scrollTop+"px"},"normal");
if(options.isClose){
stc=setTimeout(function(){
$close.trigger("click");
clearTimeout(stc);
},options.timeOut);
}
});
if(options.isAuto){
st=setTimeout(function(){
$this.trigger(options.Event);
clearTimeout(st);
},options.time);
}
}
});
配套的css:
*
{
padding:0;
margin:0;
}
#floatBoxBg
{
display:none;
width:100%;
height:100%;
background:#000;
position:fixed!important;/*ie7ff*/
position:absolute;
top:0;
left:0;
filter:alpha(opacity=0);
opacity:0;
}
.floatBox
{
border:#9CC95F5pxsolid;
position:fixed!important;/*ie7ff*/
position:absolute;
top:50px;
left:40%;
background:#fff;
display:none;
}
.floatBox.title
{
height:23px;
padding:7px10px0;
color:#fff;
background-attachment:scroll;
background:#9CC95F;
background-repeat:repeat-x;
background-position:0px0px;
}
.floatBox.titleh4
{
float:left;
padding:0;
margin:0;
font-size:14px;
line-height:16px;
}
.floatBox.titlespan
{
float:right;
cursor:pointer;
}
.floatBox.content
{
padding:20px15px;
background:#fff;
overflow-x:hidden;
overflow-y:auto;
}
#closeDialog
{
font-size:20px;
font-weight:bold;
color:#000;
margin-top:-5px;
}
#closeDialog:hover
{
font-size:20px;
font-weight:bold;
color:#fff;
margin-top:-5px;
}
最终的html示例:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<scripttype="text/javascript"src="../js/jquery-1.7.min.js"></script>
<scripttype="text/javascript"src="jquery.popdialog.js"></script>
<linktype="text/css"rel="stylesheet"href="popdialog.css"/>
</head>
<body>
<divid="test">弹出层插件测试</div>
<divid="detail"style="display:none;">
欢迎各位网友使用弹出层插件demo
</div>
<scripttype="text/javascript">
$(function(){
$("#test").PopDialog({
Event:"click",//触发响应事件
title:"弹出层插件",//弹出层的标题
type:"id",//弹出层类型(text、容器ID、URL、Iframe)
content:"detail",//弹出层的内容获取(text文本、容器ID名称、URL地址、Iframe的地址)
width:500,//弹出层的宽度
height:300,//弹出层的高度
scrollTop:200,//层滑动的高度也就是弹出层时离顶部滑动的距离
isAuto:true,//是否自动弹出
time:2000,//设置弹出层时间,前提是isAuto=true
isClose:false,//是否自动关闭
timeOut:5000//设置自动关闭时间,前提是isClose=true
});
});
</script>
</body>
</html>
以上所述是小编给大家介绍的jQuery弹出层插件(推荐)的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!