遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)


Posted in Javascript onAugust 20, 2015

首先给大家展示演示效果:

遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)

基于JavaScript的网页弹出层,鼠标按在弹出层的标题栏处,可以拖动该浮动层随意移动位置,不需要时也可以关闭,操作体验舒服,兼容性好,IE/火狐等众多浏览器下运行稳定、反应快速。代码表现方面,简洁务实,不玩虚的,拿去学习也相当不错。

js代码

示例一:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>弹出层并可拖拽</title>
<style>
html,body{height:100%;overflow:hidden;}
body,div,h2{margin:0;padding:0;}
body{font:12px/1.5 Tahoma;}
li{ list-style-type:none}
center{padding-top:10px;}
button{cursor:pointer;}
#overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:0.5;filter:alpha(opacity=50);display:none;}
#win{position:absolute;top:50%;left:50%;width:400px;height:200px;background:#fff;border:4px solid #f90;margin:-102px 0 0 -202px;display:none;}
h2{font-size:12px;height:18px;text-align:right;background:#FC0;border-bottom:3px solid #f90;padding:5px;cursor:move;}
h2 span{color:#f90;cursor:pointer;background:#fff;border:1px solid #f90;padding:0 2px;}
</style>
<script>
window.onload = function ()
{
var oWin = document.getElementById("win");
var oLay = document.getElementById("overlay");
var oBtn = document.getElementsByTagName("button")[0];
var oClose = document.getElementById("close");
var oH2 = oWin.getElementsByTagName("h2")[0];
var bDrag = false;
var disX = disY = 0;
oBtn.onclick = function ()
{
oLay.style.display = "block";
oWin.style.display = "block"
};
oClose.onclick = function ()
{
oLay.style.display = "none";
oWin.style.display = "none"
};
oClose.onmousedown = function (event)
{
(event || window.event).cancelBubble = true;
};
oH2.onmousedown = function (event)
{
var event = event || window.event;
bDrag = true;
disX = event.clientX - oWin.offsetLeft;
disY = event.clientY - oWin.offsetTop;
this.setCapture && this.setCapture();
return false
};
document.onmousemove = function (event)
{
if (!bDrag) return;
var event = event || window.event;
var iL = event.clientX - disX;
var iT = event.clientY - disY;
var maxL = document.documentElement.clientWidth - oWin.offsetWidth;
var maxT = document.documentElement.clientHeight - oWin.offsetHeight;
iL = iL < 0 ? 0 : iL;
iL = iL > maxL ? maxL : iL;
iT = iT < 0 ? 0 : iT;
iT = iT > maxT ? maxT : iT;
oWin.style.marginTop = oWin.style.marginLeft = 0;
oWin.style.left = iL + "px";
oWin.style.top = iT + "px";
return false
};
document.onmouseup = window.onblur = oH2.onlosecapture = function ()
{
bDrag = false;
oH2.releaseCapture && oH2.releaseCapture();
};
};
</script>
<meta charset="utf-8">
</head>
<body>
<div id="overlay"></div>
<div id="win"><h2><span id="close">×</span></h2>
<li><a href='http://www.100sucai.com' target='_blank'>http://www.100sucai.com</a></li>
<li><a href="http://www.100sucai.com/web/jquerytexiao/CSS3heHtml5" title="CSS3和Html5">CSS3和Html5</a></li>
<li><a href="http://www.100sucai.com/web/jquerytexiao/tubiaoyutuxing" title="图表与图形">图表与图形</a></li>
</div>
<center><button>弹出层</button></center>
</body>
</html><br />

         jq代码:

  代码示例二:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery弹出层效果</title>
<meta content="网页特效,特效代码,jQuery,css特效,Js代码,广告幻灯,图片切换" name="keywords" />
<meta content="jQuery弹出层效果,有关闭按钮,代码简单易懂,你可以随意修改弹出层的参数。" name="description" />
<script src="/uploads/common/js/jquery-1.4.2.min.js" type="text/javascript"></script>
<style>
.black_overlay{
display: none;
position: absolute;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
background-color: black;
z-index:1001;
-moz-opacity: 0.8;
opacity:.80;
filter: alpha(opacity=80);
}
.white_content {
display: none;
position: absolute;
top: 10%;
left: 10%;
width: 80%;
height: 80%;
border: 16px solid lightblue;
background-color: white;
z-index:1002;
overflow: auto;
}
.white_content_small {
display: none;
position: absolute;
top: 20%;
left: 30%;
width: 40%;
height: 50%;
border: 16px solid lightblue;
background-color: white;
z-index:1002;
overflow: auto;
}
</style>
<script type="text/javascript">
//弹出隐藏层
function ShowDiv(show_div,bg_div){
document.getElementById(show_div).style.display='block';
document.getElementById(bg_div).style.display='block' ;
var bgdiv = document.getElementById(bg_div);
bgdiv.style.width = document.body.scrollWidth;
// bgdiv.style.height = $(document).height();
$("#"+bg_div).height($(document).height());
};
//关闭弹出层
function CloseDiv(show_div,bg_div)
{
document.getElementById(show_div).style.display='none';
document.getElementById(bg_div).style.display='none';
};
</script>
</head>
<body>
<input id="Button1" type="button" value="点击弹出层" onclick="ShowDiv('MyDiv','fade')" />
<!--弹出层时背景层DIV-->
<div id="fade" class="black_overlay">
</div>
<div id="MyDiv" class="white_content">
<div style="text-align: right; cursor: default; height: 40px;">
<span style="font-size: 16px;" onclick="CloseDiv('MyDiv','fade')">关闭</span>
</div>
目前来说,我还是喜欢这个自己改造的弹出层。自己在项目中也用的是这个。
</div>
</body>
</html>

以上通过jq和js分别实现了遮罩层点击按钮弹出并且具有拖动和关闭效果,希望对大家有所帮助。

Javascript 相关文章推荐
javascript 当前日期加(天、周、月、年)
Aug 09 Javascript
Tab页界面,用jQuery及Ajax技术实现
Sep 21 Javascript
一些相见恨晚的 JavaScript 技巧
Apr 25 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
js获取及修改网页背景色和字体色的方法
Dec 29 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
Apr 29 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
Aug 17 Javascript
基于JavaScript实现五子棋游戏
Aug 26 Javascript
基于vue实现一个神奇的动态按钮效果
May 15 Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 Javascript
vue实现百度搜索功能
Dec 28 Javascript
JS实现支持多选的遍历下拉列表代码
Aug 20 #Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
Aug 20 #Javascript
jQuery+HTML5实现图片上传前预览效果
Aug 20 #Javascript
纯javascript模仿微信打飞机小游戏
Aug 20 #Javascript
js代码实现无缝滚动(文字和图片)
Aug 20 #Javascript
js图片翻书效果代码分享
Aug 20 #Javascript
JS给Textarea文本框添加行号的方法
Aug 20 #Javascript
You might like
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
js改变Iframe中Src的方法
2015/05/05 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
Python assert关键字原理及实例解析
2019/12/13 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
学子宴答谢词
2014/01/25 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
平安工地汇报材料
2014/08/19 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
同学聚会邀请函
2015/01/30 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android