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 相关文章推荐
jQuery 鼠标经过(hover)事件的延时处理示例
Apr 14 Javascript
js 调用百度地图api并在地图上进行打点添加标注
May 13 Javascript
微信支付 JS API支付接口详解
Jul 11 Javascript
js removeChild 方法深入理解
Aug 16 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 Javascript
angular+ionic返回上一页并刷新页面
Aug 08 Javascript
weex里Vuex state使用storage持久化详解
Sep 09 Javascript
Vue完整项目构建(进阶篇)
Feb 10 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
Sep 04 Javascript
JS实现打砖块游戏
Feb 14 Javascript
Vue使用Element实现增删改查+打包的步骤
Nov 25 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
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
浅析PEP572: 海象运算符
2019/10/15 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
技术总监个人的自我评价范文
2013/12/18 职场文书
房地产还款计划书
2014/01/10 职场文书
综治工作汇报材料
2014/10/27 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
小学毕业感言200字
2015/07/30 职场文书
国际贸易实训总结
2015/08/03 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers