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 相关文章推荐
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
ext form 表单提交数据的方法小结
Aug 08 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
Mar 29 Javascript
Node.js中的事件驱动编程详解
Aug 16 Javascript
node.js中的favicon.ico请求问题处理
Dec 15 Javascript
jQuery动态效果显示人物结构关系图的方法
May 07 Javascript
JavaScript中工厂函数与构造函数示例详解
May 06 Javascript
layui的layedit富文本赋值方法
Sep 18 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
Jun 10 Javascript
js实现拖拽元素选择和删除
Aug 25 Javascript
react-intl实现React国际化多语言的方法
Sep 27 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
关于PHP5 Session生命周期介绍
2010/03/02 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Python 串口读写的实现方法
2019/06/12 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
pandas的resample重采样的使用
2020/04/24 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
一个入门级python爬虫教程详解
2021/01/27 Python
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
shell的种类有哪些
2015/04/15 面试题
无偿献血倡议书
2014/04/14 职场文书
一年级学生评语
2014/04/23 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
离婚协议书范本
2015/01/26 职场文书
投诉书格式范本
2015/07/02 职场文书
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js