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 相关文章推荐
学习ExtJS table布局
Oct 08 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
Mar 01 Javascript
javascript学习笔记(十一) 正则表达式介绍
Jun 20 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
Mar 29 Javascript
js 创建对象 经典模式全面了解
Aug 16 Javascript
AngularJS中$http的交互问题
Mar 29 Javascript
简单谈谈关于 npm 5.0 的新坑
Jun 08 Javascript
javascript实现文本框标签验证的实例代码
Oct 14 Javascript
利用Vue构造器创建Form组件的通用解决方法
Dec 03 Javascript
详解Vue源码之数据的代理访问
Dec 11 Javascript
原来JS还可以这样拆箱转换详解
Feb 01 Javascript
一文了解Vue中的nextTick
May 06 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中截取字符串支持utf-8
2007/01/18 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python入门篇之函数
2014/10/20 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
Django如何将URL映射到视图
2019/07/29 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
自我反省检讨书
2014/01/23 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
爱护公物演讲稿
2014/09/09 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
期中考试后的感想
2015/08/07 职场文书
区域销售大会开幕词
2016/03/04 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA