基于jquery的模态div层弹出效果


Posted in Javascript onAugust 21, 2010

经过几多周折,终于搞出来了,效果图如下:
基于jquery的模态div层弹出效果
具体实现:
(1) 编写 jquery.divbox.js 的代码:

jQuery.fn.extend( 
{ 
OpenDiv: function() 
{ 
var sWidth, sHeight; 
sWidth = window.screen.availWidth; 
if (window.screen.availHeight > document.body.scrollHeight) 
{ 
sHeight = window.screen.availHeight; 
} else 
{ 
sHeight = document.body.scrollHeight + 20; 
} 
var maskObj = document.createElement("div"); 
maskObj.setAttribute('id', 'BigDiv'); 
maskObj.style.position = "absolute"; 
maskObj.style.top = "0"; 
maskObj.style.left = "0"; 
maskObj.style.background = "#111"; 
maskObj.style.filter = "Alpha(opacity=70);"; 
maskObj.style.opacity = "0.7"; 
maskObj.style.width = sWidth + "px"; 
maskObj.style.height = sHeight + "px"; 
maskObj.style.zIndex = "10000"; 
$("body").attr("scroll", "no"); 
document.body.appendChild(maskObj); 
$("#BigDiv").data("divbox_selectlist", $("select:visible")); 
$("select:visible").hide(); 
$("#BigDiv").attr("divbox_scrolltop", $.ScrollPosition().Top); 
$("#BigDiv").attr("divbox_scrollleft", $.ScrollPosition().Left); 
$("#BigDiv").attr("htmloverflow", $("html").css("overflow")); 
$("html").css("overflow", "hidden"); 
window.scrollTo($("#BigDiv").attr("divbox_scrollleft"), $("#BigDiv").attr("divbox_scrolltop")); 
var MyDiv_w = this.width(); 
var MyDiv_h = this.height(); 
MyDiv_w = parseInt(MyDiv_w); 
MyDiv_h = parseInt(MyDiv_h); 
var width = $.PageSize().Width; 
var height = $.PageSize().Height; 
var left = $.ScrollPosition().Left; 
var top = $.ScrollPosition().Top; 
var Div_topposition = top + (height / 2) - (MyDiv_h / 2); 
var Div_leftposition = left + (width / 2) - (MyDiv_w / 2); 
this.css("position", "absolute"); 
this.css("z-index", "10001"); 
this.css("background", "#fff"); 
this.css("left", Div_leftposition + "px"); 
this.css("top", Div_topposition + "px"); 
if ($.browser.mozilla) 
{ 
this.show(); 
return; 
} 
this.fadeIn("fast"); 
} 
, CloseDiv: function() 
{ 
if ($.browser.mozilla) 
{ 
this.hide(); 
} else 
{ 
this.fadeOut("fast"); 
} $("html").css("overflow", $("#BigDiv").attr("htmloverflow")); 
window.scrollTo($("#BigDiv").attr("divbox_scrollleft"), $("#BigDiv").attr("divbox_scrolltop")); 
$("#BigDiv").data("divbox_selectlist").show(); 
$("#BigDiv").remove(); 
} 
}); 
$.extend( 
{ 
PageSize:function () 
{ 
var width=0; 
var height=0; 
width=window.innerWidth!=null?window.innerWidth:document.documentElement&&document.documentElement.clientWidth?document.documentElement.clientWidth:document.body!=null?document.body.clientWidth:null; 
height=window.innerHeight!=null?window.innerHeight:document.documentElement&&document.documentElement.clientHeight?document.documentElement.clientHeight:document.body!=null?document.body.clientHeight:null; 
return {Width:width,Height:height}; 
} 
,ScrollPosition:function () 
{ 
var top=0,left=0; 
if($.browser.mozilla) 
{ 
top=window.pageYOffset; 
left=window.pageXOffset; 
} 
else if($.browser.msie) 
{ 
top=document.documentElement.scrollTop; 
left=document.documentElement.scrollLeft; 
} 
else if(document.body) 
{ 
top=document.body.scrollTop; 
left=document.body.scrollLeft; 
} 
return {Top:top,Left:left}; 
} 
});

(2) 网页中需引用两个js, jquery.divbox.js 和 jquery.js

(3) 测试页面代码:

<html> 
<head> 
<title>测试</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/jquery.divbox.js"></script> 
<style> 
#divSCA 
{ 
position: absolute; 
width: 700px; 
height: 500px; 
font-size: 12px; 
background: #fff; 
border: 0px solid #000; 
z-index: 10001; 
display: none; 
} 
</style> 
<script type="text/javascript"> 
function openDiv() { 
$("#divSCA").OpenDiv(); 
} 
function closeDiv() { 
$("#divSCA").CloseDiv(); 
} 
</script> 
</head> 
<body> 
<div id="divSCA"> 
<font size="50">这是模态DIV,点击关闭</font> 
<input type="button" value="关闭" onclick="closeDiv()"> 
</div> 
<input type="button" value="弹出" onclick="openDiv()"/> 
测试能否覆盖 select 
<select> 
<option>测试1</option> 
<option>测试2</option> 
<option>测试3</option> 
</select> 
</body> 
</html>

(4) 测试代码及源文件下载地址:

点击下载

Javascript 相关文章推荐
一端时间轮换的广告
Jun 26 Javascript
JavaScript 模拟用户单击事件
Dec 31 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
May 26 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
Sep 27 Javascript
Vue插件写、用详解(附demo)
Mar 20 Javascript
vue.js与后台数据交互的实例讲解
Aug 08 Javascript
php结合js实现多条件组合查询
May 28 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
Sep 21 Javascript
在Express中提供静态文件的实现方法
Oct 17 Javascript
JS中箭头函数与this的写法和理解
Jan 14 Javascript
ExtJs 表单提交登陆实现代码
Aug 19 #Javascript
ExtJs中简单的登录界面制作方法
Aug 19 #Javascript
filters.revealTrans.Transition使用方法小结
Aug 19 #Javascript
JS面向对象编程之对象使用分析
Aug 19 #Javascript
JavaScript中各种编码解码函数的区别和注意事项
Aug 19 #Javascript
jquery插件之easing使用
Aug 19 #Javascript
为Extjs加加速(javascript加速)
Aug 19 #Javascript
You might like
PHP 一个页面执行时间类代码
2010/03/05 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
destoon官方标签大全
2014/06/20 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
PHP实现懒加载的方法
2015/03/07 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
Python生成rsa密钥对操作示例
2019/04/26 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
在校生钳工实习自我鉴定
2013/09/19 职场文书
同学聚会策划方案
2014/06/06 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
酒店员工管理制度
2015/08/05 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL