JS弹出可拖拽可关闭的div层完整实例


Posted in Javascript onFebruary 13, 2015

本文实例讲述了JS弹出可拖拽可关闭的div层完整实现方法。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>JS弹出可拖拽可关闭的div层</title>

<style>

html,body{height:100%;overflow:hidden;}

body,div,h2{margin:0;padding:0;}

body{font:12px/1.5 Tahoma;}

center{padding-top:10px;}

button{cursor:pointer;}

#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 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 ()

 {

  oWin.style.display = "block" 

 };

 oClose.onclick = function ()

 {

  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>

</head>

<body>
<div id="win"><h2><span id="close">×</span></h2></div>

<center><button>弹出层</button></center>

</body>

</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
html+css+js实现xp window界面及有关功能
Mar 26 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
Sep 03 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 Javascript
jQuery实现两列等高并自适应高度
Dec 22 Javascript
Angular.JS通过指令操作DOM的方法
May 10 Javascript
Web安全之XSS攻击与防御小结
Dec 13 Javascript
vue实现压缩图片预览并上传功能(promise封装)
Jan 10 Javascript
深入理解vue中的slot与slot-scope
Apr 22 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
antd design table更改某行数据的样式操作
Oct 31 Javascript
AngularJS表单编辑提交功能实例
Feb 13 #Javascript
javascript转换日期字符串为Date日期对象的方法
Feb 13 #Javascript
jQuery动态修改超链接地址的方法
Feb 13 #Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 #Javascript
javascript获取元素离文档各边距离的方法
Feb 13 #Javascript
jQuery点缩略图弹出层显示大图片
Feb 13 #Javascript
Js控制滑轮左右滑动实例
Feb 13 #Javascript
You might like
PHP无限分类的类
2007/01/02 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
ext form 表单提交数据的方法小结
2008/08/08 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
js分页工具实例
2015/01/28 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python使用pickle模块储存对象操作示例
2018/08/15 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
详解django中Template语言
2020/02/22 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
社区中秋节活动方案
2014/01/29 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
幼儿园六一主持词
2015/06/30 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis