基于jquery的模态div层弹出效果
基于jquery的模态div层弹出效果
发布时间:2016-12-30 来源:查字典编辑
摘要:经过几多周折,终于搞出来了,效果图如下:具体实现:(1)编写jquery.divbox.js的代码:复制代码代码如下:jQuery.fn.e...

经过几多周折,终于搞出来了,效果图如下:

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

具体实现:

(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="关闭">

</div>

<input type="button" value="弹出"/>

测试能否覆盖 select

<select>

<option>测试1</option>

<option>测试2</option>

<option>测试3</option>

</select>

</body>

</html>

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

点击下载

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类