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 相关文章推荐
javascript 函数调用规则
Aug 26 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
Oct 23 Javascript
详解AngularJS 模态对话框
Apr 07 Javascript
在JavaScript中调用Java类和接口的方法
Sep 07 Javascript
jQuery选择器之表单元素选择器详解
Sep 19 jQuery
微信小程序实战篇之购物车的实现代码示例
Nov 30 Javascript
Vue实现简易翻页效果源码分享
Nov 08 Javascript
小程序组件之自定义顶部导航实例
Jun 12 Javascript
vue实现直播间点赞飘心效果的示例代码
Sep 20 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
Oct 12 Javascript
javascript实现点击星星小游戏
Dec 24 Javascript
vue+vant实现商品列表批量倒计时功能
Jan 13 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模块memcache和memcached区别分析
2011/06/14 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
python自动化工具之pywinauto实例详解
2019/08/26 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
诚信高考倡议书
2019/06/24 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
yolov5返回坐标的方法实例
2022/03/17 Python
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
Java 多线程并发FutureTask
2022/06/28 Java/Android