jquery 弹出登录窗口实现代码


Posted in Javascript onDecember 24, 2009

主要层左右居中,设置left等于窗口宽除二减去自身层宽除二就居中了,至于窗口上下居中我没做到,固定了top等于滚动条隐去的 scrollTop加上50px;

当事件触发这个类时,首先判断一下两个层是否已经append到body里面,否则每次触发它就一直增加增加了。设置了五个参数title、 content、width、height、cssName,它们分别定义了层标题、层内内容、层宽、层高、层内容的样式名。层内内容又设置了url、 text、id、iframe四种加载方式,通过ajax以get或post加载目标url的html内容,text是直接在事件里写入内容,而id是取 得页面上某个id里面的html显示到弹出层里,iframe都知道是在层里面以框架显示目标url了。往往弹出层里面的内容样式也是各种各样的,所以加 了一个参数cssName,通过它就可以把层内的内容给排好了。
jquery 弹出登录窗口实现代码
一,弹出层的html如下:

<div id="floatBoxBg"> 
<div id="floatBox" class="floatBox"> 
<div class="title"><h4>标题</h4><span>关闭</span></div> 
<div class="content">内容</div> 
</div> 
</div>

其对应样式如下:
#floatBoxBg { 
display:none; 
width:100%; 
height:100%; 
background:#000; 
position:absolute; 
top:0; 
left:0; 
} 
.floatBox { 
border:#0C7FDA 5px solid; 
width:300px; 
position:absolute; 
top:50px; 
left:40%; 
z-index:1000; 
} 
.floatBox .title { 
height:23px; 
padding:7px 10px 0; 
color:#fff; 
background-attachment: scroll; 
background-image:url(../images/dialog_bg.gif); 
background-repeat: repeat-x; 
background-position: 0px 0px; 
} 
.floatBox .title h4 { 
float:left; 
padding:0; 
margin:0; 
font-size:14px; 
line-height:16px; 
} 
.floatBox .title span { 
float:right; 
cursor:pointer; 
vertical-align:middle; 
margin-bottom:2px; 
} 
.floatBox .content { 
padding:20px 15px; 
background:#fff; 
}

二,弹出窗口js文件如下:
// JavaScript Document var dialogFirst=true; 
function dialog(title,content,width,height,cssName){ 
if(dialogFirst==true){ 
var temp_float=new String; 
temp_float="<div id=\"floatBoxBg\" style=\"height:"+$(document).height()+"px;filter:alpha(opacity=0);opacity:0;\"></div>"; 
temp_float+="<div id=\"floatBox\" class=\"floatBox\">"; 
temp_float+="<div class=\"title\"><h4></h4><span><img src=\"/upload/2009-12/20091224021446804.gif\" width=\"22\" height=\"23\" /></span></div>"; 
temp_float+="<div class=\"content\"></div>"; 
temp_float+="</div>"; 
$("body").append(temp_float); 
dialogFirst=false; 
} 
$("#floatBox .title span").click(function(){ 
$("#floatBoxBg").animate({opacity:"0"},"normal",function(){$(this).hide();}); 
$("#floatBox").animate({top:($(document).scrollTop()-(height=="auto"?300:parseInt(height)))+"px"},"normal",function(){$(this).hide();}); 
}); 
$("#floatBox .title h4").html(title); 
contentType=content.substring(0,content.indexOf(":")); 
content=content.substring(content.indexOf(":")+1,content.length); 
switch(contentType){ 
case "url": 
var content_array=content.split("?"); 
$("#floatBox .content").ajaxStart(function(){ 
$(this).html("loading..."); 
}); 
$.ajax({ 
type:content_array[0], 
url:content_array[1], 
data:content_array[2], 
error:function(){ 
$("#floatBox .content").html("error..."); 
}, 
success:function(html){ 
$("#floatBox .content").html(html); 
} 
}); 
break; 
case "text": 
$("#floatBox .content").html(content); 
break; 
case "id": 
$("#floatBox .content").html($("#"+content+"").html()); 
break; 
case "iframe": 
$("#floatBox .content").html("<iframe src=\""+content+"\" width=\"100%\" height=\""+(parseInt(height)-70)+"px"+"\" scrolling=\"auto\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\"></iframe>"); 
} 
$("#floatBoxBg").show(); 
$("#floatBoxBg").animate({opacity:"0.5"},"normal"); 
$("#floatBox").attr("class","floatBox "+cssName); 
$("#floatBox").css({display:"block",left:(($(document).width())/2-(parseInt(width)/2))+"px",top:($(document).scrollTop()-(height=="auto"?300:parseInt(height)))+"px",width:width,height:height}); 
$("#floatBox").animate({top:($(document).scrollTop()+50)+"px"},"normal"); 
}

三,参数说明
顺序 参数 功能 备注
1 title 弹出层的标题 必填,纯文本
2 content 弹出层的内容 :url get或post某一页面里的html,该页面要求只包含body的子标签
:text 直接写入内容
:id 显示页面里某id的子标签
:iframe 层内内容以框架显示
3 width 弹出层的宽 必填,css值,比如“200px”
4 height 弹出层的高 如上,但是可用“auto”
5 cssName 弹出层的css 给id floatBox加入的样式名,层内样式可以通过这个样式名来定制

四,应用
dialog(title,content,width,height,cssName);
Javascript 相关文章推荐
通过 Dom 方法提高 innerHTML 性能
Mar 26 Javascript
jQuery基础知识filter()和find()实例说明
Jul 06 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
jQuery中after()方法用法实例
Dec 25 Javascript
精通JavaScript的this关键字
May 28 Javascript
Bootstrap每天必学之模态框(Modal)插件
Apr 26 Javascript
ashx文件获取$.ajax()方法发送的数据
May 26 Javascript
浅谈js中StringBuffer类的实现方法及使用
Sep 02 Javascript
JavaScript 数组的进化与性能分析
Sep 18 Javascript
完美解决axios跨域请求出错的问题
Feb 05 Javascript
详解react-redux插件入门
Apr 19 Javascript
详解Element 指令clickoutside源码分析
Feb 15 Javascript
Jquery 高亮显示文本中重要的关键字
Dec 24 #Javascript
JQuery 写的个性导航菜单
Dec 24 #Javascript
JavaScript中出现乱码的处理心得
Dec 24 #Javascript
js 页面刷新location.reload和location.replace的区别小结
Dec 24 #Javascript
CSS+Jquery实现页面圆角框方法大全
Dec 24 #Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
Dec 24 #Javascript
javascript下arguments,caller,callee,call,apply示例及理解
Dec 24 #Javascript
You might like
社区(php&amp;&amp;mysql)一
2006/10/09 PHP
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
python中去空格函数的用法
2014/08/21 Python
用Django写天气预报查询网站
2018/10/21 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
Python图像读写方法对比
2020/11/16 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
Java程序员面试题
2016/09/27 面试题
教你打造完美的创业计划书
2014/01/06 职场文书
美发店5.1活动方案
2014/01/24 职场文书
30年同学聚会感言
2014/01/30 职场文书
二手房买卖协议书
2014/04/10 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
求职自我评价怎么写
2015/03/09 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
婚庆主持词大全
2015/06/30 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技