基于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 相关文章推荐
Javascript 继承机制的实现
Aug 12 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
Dec 27 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
Sep 22 Javascript
js传中文参数controller里获取参数乱码问题解决方法
Jan 03 Javascript
jQuery的css()方法用法实例
Dec 24 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
js实现漂浮回顶部按钮实例
May 06 Javascript
JS实现日期时间动态显示的方法
Dec 07 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
Dec 09 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
May 17 Javascript
vue父子模板传值问题解决方法案例分析
Feb 26 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
Python基础之函数用法实例详解
2014/09/10 Python
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
python获取各操作系统硬件信息的方法
2015/06/03 Python
python Django批量导入不重复数据
2016/03/25 Python
Python学习入门之区块链详解
2017/07/25 Python
python实现BackPropagation算法
2017/12/14 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
美的官方商城:Midea
2016/09/14 全球购物
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
房地产广告策划方案
2014/05/15 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
合作协议书范文
2014/08/20 职场文书
青年文明号汇报材料
2014/12/23 职场文书