JS实现新浪微博效果带遮罩层的弹出框代码


Posted in Javascript onOctober 12, 2015

本文实例讲述了JS实现新浪微博效果带遮罩层的弹出框代码。分享给大家供大家参考。具体如下:

这是一款新浪微博效果的弹出框,现成的JS代码,兼容IE6+,以及各主流浏览器。新浪微博弹出层并可拖拽,操作轻松舒适,符合用户的浏览习惯,将代码推荐给各位网友。

运行效果截图如下:

JS实现新浪微博效果带遮罩层的弹出框代码

在线演示地址如下:

具体代码如下:

<!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>弹出层并可拖拽</title>
<style>
body,html{height:2000px;}
body,div,h2{margin:0;padding:0;}
body{font:12px/1.5 Tahoma;}
center{padding-top:10px;}
button{cursor:pointer;}
#overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;opacity:0.5;filter:alpha(opacity=50);display:none;}
*html #overlay{position:absolute;}
#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 shit = !-[1, ];
 var oWin = document.getElementById("win");
 var oLay = document.getElementById("overlay"); 
 var oBtn = document.getElementsByTagName("button")[0];
 var oClose = document.getElementById("close");
 var oH2 = oWin.getElementsByTagName("h2")[0];
 var bDrag = false;
 var disX = disY = 0;
 var iScrollT = document.documentElement.scrollTop || document.body.scrollTop;
 var iScrollL = document.documentElement.scrollLeft || document.body.scrollLeft;
 oBtn.onclick = function ()
 {
  oLay.style.display = "block";
  oWin.style.display = "block";
  shit && (oLay.style.height = document.body.offsetHeight + "px");
 };
 oClose.onclick = function ()
 {
  oLay.style.display = "none";
  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 + iScrollL;
  disY = event.clientY - oWin.offsetTop + iScrollT;  
  this.setCapture && this.setCapture();  
  return false
 };
 document.onmousemove = function (event)
 {
  if (!bDrag) return;
  var event = event || window.event;
  var iL = event.clientX - disX + iScrollL;
  var iT = event.clientY - disY + iScrollT;
  var maxL = document.body.clientWidth - oWin.offsetWidth;
  var maxT = document.body.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="overlay"></div>
<div id="win"><h2><span id="close">×</span></h2></div>
<center><button>弹出层</button></center>
</body>
</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

Javascript 相关文章推荐
通过修改referer下载文件的方法
May 11 Javascript
JavaScript 获得选中文本内容的方法
Feb 15 Javascript
javascript new后的constructor属性
Aug 05 Javascript
Mac/Windows下如何安装Node.js
Nov 22 Javascript
json中换行符的处理方法示例介绍
Jun 10 Javascript
js+html5实现canvas绘制简单矩形的方法
Jun 05 Javascript
Javascript中this绑定的3种方法与比较
Oct 13 Javascript
Vue开发之封装分页组件与使用示例
Apr 25 Javascript
koa2 从入门到精通(小结)
Jul 23 Javascript
vue监听用户输入和点击功能
Sep 27 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 26 Javascript
OpenLayers加载缩放控件使用方法详解
Sep 25 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
Oct 12 #Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
Oct 12 #Javascript
jquery实现可自动判断位置的弹出层效果代码
Oct 12 #Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
Oct 12 #Javascript
JavaScript实现上下浮动的窗口效果代码
Oct 12 #Javascript
javascript函数式编程程序员的工具集
Oct 11 #Javascript
深入探讨javascript函数式编程
Oct 11 #Javascript
You might like
如何分别全角和半角以避免乱码
2006/10/09 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
JavaScript操作cookie类实例
2015/03/31 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
python中字符串的操作方法大全
2018/06/03 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
Keras实现DenseNet结构操作
2020/07/06 Python
flask开启多线程的具体方法
2020/08/02 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
实习护理工作自我评价
2013/09/25 职场文书
矫正人员思想汇报
2014/01/08 职场文书
会计专业自荐书
2014/07/08 职场文书
大学生赌博检讨书
2014/09/22 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
Python 用户输入和while循环的操作
2021/05/23 Python