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 相关文章推荐
从sohu弄下来的flash中展示图片的代码
Apr 27 Javascript
javascript 正则替换 replace(regExp, function)用法
May 22 Javascript
最佳的addEvent事件绑定是怎样诞生的
Oct 24 Javascript
JavaScript中数组对象的那些自带方法介绍
Mar 12 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
Jul 12 Javascript
node.js中的fs.statSync方法使用说明
Dec 16 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
初识angular框架后的所思所想
Feb 19 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
Nov 08 Javascript
vue-devtools的安装步骤
Apr 23 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
Apr 23 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
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
通过javascript设置css属性的代码
2009/12/28 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
AngularJS Bootstrap详细介绍及实例代码
2016/07/28 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
python如何更新包
2020/06/11 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
莫斯科的韩国化妆品店:Sifo
2019/12/04 全球购物
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
高中毕业生个人自我鉴定
2013/11/24 职场文书
教师求职自荐书
2014/06/14 职场文书
优秀应届生求职信
2014/06/16 职场文书
八达岭长城导游词
2015/01/30 职场文书
初中毕业生感言
2015/07/31 职场文书
电工生产实习心得体会
2016/01/22 职场文书
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android