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 相关文章推荐
IE6下javasc#ipt:void(0) 无效的解决方法
Dec 23 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
Aug 21 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
Dec 13 Javascript
javascript下使用Promise封装FileReader
Feb 19 Javascript
Bootstrap 网格系统布局详解
Mar 19 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
Jul 31 Javascript
使用原生js+canvas实现模拟心电图的实例
Sep 20 Javascript
安装vue-cli的简易过程
May 22 Javascript
JavaScript数组去重的几种方法
Apr 07 Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 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
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
javascript实用方法总结
2015/02/06 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
js常见遍历操作小结
2019/06/06 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
python实现自动登录
2018/09/17 Python
python3实现高效的端口扫描
2019/08/31 Python
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
比利时香水网上商店:NOTINO
2018/03/28 全球购物
《猴子种树》教学反思
2014/02/14 职场文书
《口技》教学反思
2014/02/21 职场文书
挂牌仪式主持词
2014/03/20 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
新员工入职欢迎词
2015/01/23 职场文书
如何在Python中创建二叉树
2021/03/30 Python
python基于tkinter实现gif录屏功能
2021/05/19 Python
SQL注入详解及防范方法
2021/12/06 MySQL