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 EasyUI API 中文文档 - Documentation 文档
Sep 29 Javascript
js实现一个省市区三级联动选择框代码分享
Mar 06 Javascript
js操作table示例(个人心得)
Nov 29 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
Mar 12 Javascript
JavaScript中this详解
Sep 01 Javascript
jquery常用的12个小功能
Jul 22 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
Vue 实用分页paging实例代码
Apr 12 Javascript
AngularJs+Bootstrap实现漂亮的计算器
Aug 10 Javascript
JavaScript实现左侧菜单效果
Dec 14 Javascript
浅谈JavaScript 代码简洁之道
Jan 09 Javascript
JQuery animate动画应用示例
May 14 jQuery
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 xml-rpc远程调用
2008/12/19 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
2017/02/19 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
Django中使用locals()函数的技巧
2015/07/16 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
知识竞赛拉拉队口号
2014/06/16 职场文书
学习心理学的体会
2014/11/07 职场文书
2014年人事部工作总结
2014/12/03 职场文书
办公室岗位职责
2015/02/04 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
mysql知识点整理
2021/04/05 MySQL
Oracle使用别名的好处
2022/04/19 Oracle