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 相关文章推荐
popdiv
Jul 14 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 Javascript
随鼠标上下滚动的jquery代码
Dec 05 Javascript
Javascript玩转继承(三)
May 08 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
Aug 06 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
Jan 12 Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 Javascript
div实现自适应高度的textarea实现angular双向绑定
Jan 08 Javascript
用图片替换checkbox原始样式并实现同样的功能
Nov 15 Javascript
jQuery 选择器用法实例分析【prev + next】
May 22 jQuery
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 Javascript
vue ref如何获取子组件属性值
Mar 31 Vue.js
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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP中PDO的错误处理
2011/09/04 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
JavaScript中的连字符详解
2013/11/28 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
2016/12/08 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
python tornado修改log输出方式
2019/11/18 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
员工评语大全
2014/01/19 职场文书
医学专业大学生求职信
2014/07/12 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
工作态度不好检讨书
2015/05/06 职场文书
公司文体活动总结
2015/05/07 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
汽车销售合同文本
2019/08/08 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js