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 相关文章推荐
JScript中的&quot;this&quot;关键字使用方式补充材料
Mar 08 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 Javascript
三种Node.js写文件的方式
Mar 08 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
Sep 05 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
Feb 08 Javascript
AngularJS集合数据遍历显示的实例
Dec 27 Javascript
layui在form表单页面通过Validform加入简单验证的方法
Sep 06 Javascript
JS获取表格视图所选行号的ids过程解析
Feb 21 Javascript
JavaScript文档加载模式以及元素获取
Jul 28 Javascript
vue制作toast组件npm包示例代码
Oct 29 Javascript
Vue实现todo应用的示例
Feb 20 Vue.js
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
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
django项目中新增app的2种实现方法
2020/04/01 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
卫校护理专业毕业生求职信
2013/11/26 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
幼儿教师个人总结
2015/02/05 职场文书
贫困证明书范文
2015/06/16 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android