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 相关文章推荐
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
Node.js中的缓冲与流模块详细介绍
Feb 11 Javascript
webpack实现热加载自动刷新的方法
Jul 30 Javascript
BootStrap数据表格实例代码
Sep 13 Javascript
vue 页面加载进度条组件实例
Feb 05 Javascript
使用Angular CLI从蓝本生成代码详解
Mar 24 Javascript
Vue多系统切换实现方案
Jun 05 Javascript
js根据json数据中的某一个属性来给数据分组的方法
Oct 08 Javascript
简述pm2常用命令集合及配置文件说明
May 30 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
Aug 31 Javascript
Javascript新手入门之字符串拼接与变量的应用
Dec 03 Javascript
微信小程序中使用vant框架的具体步骤
Feb 18 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
PHP反射机制用法实例
2014/08/28 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
vue系列之动态路由详解【原创】
2017/09/10 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
python算法演练_One Rule 算法(详解)
2017/05/17 Python
python 日期排序的实例代码
2019/07/11 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
Python读写Excel表格的方法
2021/03/02 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
工程现场管理求职自荐信
2013/10/02 职场文书
养牛场项目建议书
2014/05/13 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
历史博物馆观后感
2015/06/05 职场文书
四则混合运算教学反思
2016/02/23 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android