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实现鼠标滑过Div层背景变颜色的方法
Feb 17 Javascript
js代码验证手机号码和电话号码是否合法
Jul 30 Javascript
jQuery实现简单的列表式导航菜单效果代码
Aug 31 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
jQuery实现调整表格单列顺序完整实例
Jun 20 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
Jan 18 Javascript
js实现导航吸顶效果
Feb 24 Javascript
如何使用bootstrap框架 bootstrap入门必看!
Apr 13 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
vue中是怎样监听数组变化的
Oct 24 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
用PHP读取flv文件的播放时间长度
2009/09/03 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
JavaScript window.location对象
2014/11/14 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
javascript实现简单搜索功能
2020/03/26 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
会计电算化应届生求职信
2013/11/03 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
设备收款委托书范本
2014/10/02 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年库房工作总结
2014/11/26 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
比赛主持人开场白
2015/05/29 职场文书
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL