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 相关文章推荐
时间戳转换为时间 年月日时间的JS函数
Aug 19 Javascript
Javascript变量作用域详解
Dec 06 Javascript
js与jQuery 获取父窗、子窗的iframe
Dec 20 Javascript
关于onchange事件在IE和FF下的表现及解决方法
Mar 08 Javascript
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
javascript实现base64 md5 sha1 密码加密
Sep 09 Javascript
浅谈js和css内联外联注意事项
Jun 30 Javascript
微信小程序 页面跳转事件绑定的实例详解
Sep 20 Javascript
浅析Vue实例以及生命周期
Aug 14 Javascript
微信小程序自定义tabBar组件开发详解
Sep 24 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
Jun 18 Javascript
vue仿ios列表左划删除
Sep 26 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代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Python函数参数操作详解
2018/08/03 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
python各层级目录下import方法代码实例
2020/01/20 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
3种方式实现瀑布流布局小结
2019/09/05 HTML / CSS
《我为你骄傲》教学反思
2014/02/20 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
企业文化宣传标语
2014/06/09 职场文书
销售员自我评价
2015/03/11 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
芙蓉镇观后感
2015/06/10 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
2016银行求职自荐信
2016/01/28 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers