js弹出层与遮罩层(20190223053800)
- 格式:pdf
- 大小:288.08 KB
- 文档页数:3
主调函数参数说明:Dialog.open({ID,Title,URL,InnerHtml,InvokeElementId,Width,Height,Top,Left,Drag,OKEv ent,ShowButtonRow,MessageTitle,Message,AutoClose,OnLoad})∙ID:窗口id号,可省略。
每个窗口的id必须是唯一的不能重复。
∙Title:窗口标题。
如不写此项默认值为""。
∙URL:窗口内容页地址,或使用相对路径或绝对路径,注意如果使用形式的绝对地址,则http://不能省略。
∙InnerHtml:窗口内容html代码,用于直接输出html内容,注意不要让生成的内容因为不适当的宽度或定位方式而破坏了Dialog的外观。
∙InvokeElementId:本页面内隐藏的元素的id,用于显示页面内隐藏的元素中的html 内容,注意不要让内容因为不适当的宽度或定位方式而破坏了Dialog的外观。
∙Width:窗口宽度(dialog内容区宽度),值为数值型,默认值为窗口可见宽的40%。
∙Height:窗口高度(dialog内容区高度),值为数值型,默认值为窗口可见宽的20%。
∙Left:窗口距浏览器左边距离,值为数值型或字符串型(当使用百分比时为字符串型),如Left:"0%",Top:"0%"为左上,Left:"50%",Top:"50%"为居中,Left:"100%",Top:"100%"为右下。
∙Top:窗口距浏览器顶端距离,值为数值型或字符串型(百分比)。
∙Drag:是否允许拖动窗口,值为布尔型(true|false),默认值为true,注意需要页面引用了Drag.js。
∙OKEvent:点击确定按钮后执行的函数。
∙CancelEvent:点击取消按钮或点击关闭按钮后执行的函数,默认为关闭本Dialog。
js实现弹窗效果本⽂实例为⼤家分享了js实现弹窗效果的具体代码,供⼤家参考,具体内容如下思路:1.创建⼀个按钮,点击弹出弹窗2.建⽴⼀个弹窗页⾯固定定位默认隐藏3.将弹窗内容放在弹窗页⾯的中间4.js将事件绑定按钮,点击后让弹窗页⾯显⽰5.js事件绑定span标签,点击后让弹窗页⾯消失代码如下<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>弹窗</title><link href="../css/弹窗.css" type="text/css" rel="stylesheet"></head><body><!--打开弹窗按钮--><button id="btn">打开弹窗</button><!--弹窗--><div id="myModal"><!--弹窗头部--><div class="modal"><div class="modal-header"><p>危险警告</p><span class="close">×</span></div><!--弹窗⽂本--><div class="modal-content"><p>您将进⼊⼀个不安全的页⾯</p></div><!--弹窗底部--><div class="modal-footer"></div></div><script src="../js/弹窗.js"></script></body></html>CSS:#myModal{display: none;position: fixed;z-index:1;left:0;top:0;width: 100%;height:100%;overflow: auto;background:rgba(0,0,0,0.5);}#myModal .modal{width: 500px;height:300px;position: relative;top:50%;left:50%;margin-top: -150px;margin-left: -250px;animation:animate 1s;}.modal .modal-header{height:50px;background:white;color: #000;line-height:50px;border-bottom: 1px solid #000000;}.modal .modal-header p{display: inline-block;margin:0;position: absolute;left: 20px;}.modal .modal-header .close{position: absolute;right:20px;font-size: 20px;cursor:pointer;}.modal .modal-content{background: white;height:200px;text-align: center;line-height: 200px;}.modal .modal-content p{margin:0;}.modal .modal-footer{position: relative;height:50px;background: white;}/*添加动画*/@keyframes animate{from{top:0;opacity:0}to{top:50%;opacity:1}}js:window.onload=function () {//获取弹窗按钮var btn=document.getElementById("btn");var close=document.getElementsByClassName("close")[0];var myModal=document.getElementById("myModal");//按钮绑定事件btn.onclick=function () {//获取弹窗myModal.style.display="block";}close.onclick=function () {myModal.style.display="none";}//⽤户点击其他地⽅关闭弹窗window.onclick=function (event) {if(event.target ==myModal){myModal.style.display="none";}}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
js弹出窗口总结6种弹窗方法注://关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<scriptlanguage=javascript>window.close();</script>");//关闭,父窗口和子窗口都不弹出对话框,直接关闭this.Response.Write("<script>");this.Response.Write("{top.opener =null;top.close();}");this.Response.Write("</script>");//弹出窗口刷新当前页面width=200 height=200菜单。
菜单栏,工具条,地址栏,状态栏全没有this.Response.Write("<scriptlanguage=javascript>window.open('rows.aspx','newwindow','width=200,he ight=200')</script>");//弹出窗口刷新当前页面this.Response.Write("<scriptlanguage=javascript>window.open('rows.aspx')</script>");this.Response.Write("<script>window.open('WebForm2.aspx','_blank');</ script>");//弹出提示窗口跳到webform2.aspx页(在一个IE窗口中)this.Response.Write(" <script language=javascript>alert('注册成功'); window.window.location.href='WebForm2.aspx';</script> ");//关闭当前子窗口,刷新父窗口this.Response.Write("<script>window.opener.location.href=window.opene r.location.href;window.close();</script>");this.Response.Write("<script>window.opener.location.replace(window.op ener.document.referrer);window.close();</script>");//子窗口刷新父窗口this.Response.Write("<script>window.opener.location.href=window.opene r.location.href;</script>");this.Response.Write("<script>window.opener.location.href='WebForm1.as px';</script>");//弹出提示窗口.确定后弹出子窗口(WebForm2.aspx)this.Response.Write("<script language='javascript'>alert('发表成功!');window.open('WebForm2.aspx')</script>");//弹出提示窗口,确定后,刷新父窗口this.Response.Write("<script>alert('发表成功!');window.opener.location.href=window.opener.location.href;</script>" );//弹出相同的一页<INPUT type="button" value="Button"onclick="javascript:window.open(window.location.href)">//Response.Write("parent.mainFrameBottom.location.href='yourwebform.asp x?temp=" +str+"';");<SCRIPT LANGUAGE="javascript"><!--window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行--></SCRIPT>参数解释:<SCRIPT LANGUAGE="javascript"> js脚本开始;window.open 弹出新窗口的命令;'page.html' 弹出窗口的文件名;'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;height=100 窗口高度;width=400 窗口宽度;top=0 窗口距离屏幕上方的象素值;left=0 窗口距离屏幕左侧的象素值;toolbar=no 是否显示工具栏,yes为显示;menubar,scrollbars 表示菜单栏和滚动栏。
js实现遮罩层弹出框的⽅法本⽂实例讲述了js实现遮罩层弹出框的⽅法。
分享给⼤家供⼤家参考。
具体分析如下:昨天公司⽹站需要弹窗提⽰⼀些信息,要我在把弹窗的js代码和弹窗窗⼝html写在⼀起哪⾥需要就调⽤不说那么多了,直接上代码,感觉肯定会有兼容问题,看到了请指出啊:复制代码代码如下:<style>#H-dialog{display:none;position:absolute;z-index: 9999999;width:400px;height: auto; background-color: #fff;}#H-dialog .close{float:right;font-size: 30px;margin-right: 10px;margin-top:5px;cursor:pointer;}#H-dialog .title{height: 40px;padding-left:10px; font-size:20px; line-height:40px;}#H-dialog #msgCont{height:36px; margin: 30px 0 50px;padding-left: 65px;font-size: 25px;line-height: 36px;vertical-align: middle; background: url(../Images/ui_alert.png) no-repeat 20px 50%;}</style><div id="H-dialog"><a class="close" onclick="popupClose(this)">×</a><div class="title">提⽰</div><div id="msgCont">内容</div></div><script type="text/javascript">//锁定背景屏幕function lockScreen() {var clientH = document.body.offsetHeight; //body⾼度var clientW = document.body.offsetWidth; //body宽度var docH = document.body.scrollHeight; //浏览器⾼度var docW = document.body.scrollWidth; //浏览器宽度var bgW = clientW > docW ? clientW : docW; //取有效宽var bgH = clientH > docH ? clientH : docH; //取有效⾼var blackBg = document.createElement("div");blackBg.id = "blackBg";blackBg.style.position = "absolute";blackBg.style.zIndex = "99999";blackBg.style.top = "0";blackBg.style.left = "0";blackBg.style.width = bgW+"px";blackBg.style.height = bgH+"px";blackBg.style.opacity = "0.4";blackBg.style.backgroundColor = "#333";document.body.appendChild(blackBg);}//关闭按钮事件function popupClose(el) {var blackBg = document.getElementById("blackBg");blackBg && document.body.removeChild(blackBg);el.parentNode.style.display = "none";}//⾃动关闭function autoClose(id) {id = id || "H-dialog";var blackBg = document.getElementById("blackBg");var objDiv = document.getElementById(id);setTimeout(function(){blackBg && document.body.removeChild(blackBg);objDiv.style.display = "none";},2000);}/***功能 : 弹窗信息*参数1 : 提⽰信息内容*参数2 : 提⽰信息状态默认0 为提⽰信息,1为成功信息*参数3 : 弹窗div的id,默认"H-dialog"*参数4 : 弹窗内容的id,默认"msgCont"**/function showMsg(msg) {msg = msg || "请重新操作";var status = arguments[1] || 0,popupId = arguments[2] || "H-dialog",contentId = arguments[3] || "msgCont";lockScreen();//屏幕实际⾼宽var pageWidth = window.innerWidth;var pageHeight = window.innerHeight;if (typeof pageWidth != "number") {if (patMode == "CSS1Compat") {pageWidth = document.documentElement.clientWidth;pageHeight = document.documentElement.clientHeight;} else {pageWidth = document.body.clientWidth;pageHeight = document.body.clientHeight;}}//滚动条⾼宽var scrollLeft = window.document.documentElement.scrollLeft;var scrollTop = 0;if (typeof window.pageYOffset != 'undefined') {scrollTop = window.pageYOffset;} else if (typeof patMode != 'undefined' &&patMode != 'BackCompat') {scrollTop = window.document.documentElement.scrollTop;} else if (typeof window.document.body != 'undefined') {scrollTop = window.document.body.scrollTop;}var div_X = (pageWidth - 400) / 2 + scrollLeft;var div_Y = (pageHeight - 200) / 2 + scrollTop;var objDiv = document.getElementById(popupId);if (status) {document.getElementById(contentId).style.background = "url($Root/Assets/Images/ui_success.png) no-repeat 20px 50%";}document.getElementById(contentId).innerHTML = msg;objDiv.style.display = "block";objDiv.style.left = div_X + "px";objDiv.style.top = div_Y + "px";autoClose(popupId);}</script>希望本⽂所述对⼤家的javascript程序设计有所帮助。
<html><head><title>_xWin</title><script language=JScript><!--//可以打包为js文件;var x0=0,y0=0,x1=0,y1=0;var offx=6,offy=6;var moveable=false;var hover='orange',normal='slategray';//color;var index=10000;//z-index;var xx;//开始拖动;function startDrag(obj){if(event.button==1){//锁定标题栏;obj.setCapture();//定义对象;var win = obj.parentNode;var sha = win.nextSibling;//记录鼠标和层位置;x0 = event.clientX;y0 = event.clientY;x1 = parseInt(win.style.left);y1 = parseInt(win.style.top);//记录颜色;normal = obj.style.backgroundColor;//改变风格;obj.style.backgroundColor = hover;win.style.borderColor = hover;obj.nextSibling.style.color = hover;sha.style.left = x1 + offx;sha.style.top = y1 + offy;moveable = true;}}//拖动;function drag(obj){if(moveable){var win = obj.parentNode;var sha = win.nextSibling;win.style.left = x1 + event.clientX - x0;sha.style.left = parseInt(win.style.left) + offx;if ((y1 + event.clientY - y0)>0 && (y1 + event.clientY - y0)<600){win.style.top = y1 + event.clientY - y0;sha.style.top = parseInt(win.style.top) + offy;}}}//停止拖动;function stopDrag(obj){if(moveable){var win = obj.parentNode;var sha = win.nextSibling;var msg = obj.nextSibling;win.style.borderColor = normal;obj.style.backgroundColor = normal;msg.style.color = normal;sha.style.left = obj.parentNode.style.left;sha.style.top = obj.parentNode.style.top;obj.releaseCapture();moveable = false;}}//获得焦点;function getFocus(obj){if(obj.style.zIndex!=index){index = index + 2;var idx = index;obj.style.zIndex=idx;obj.nextSibling.style.zIndex=idx-1;}}//最小化;function min(obj){var win = obj.parentNode.parentNode;var sha = win.nextSibling;var tit = obj.parentNode;var msg = tit.nextSibling;var flg = msg.style.display=="none";if(flg){win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;sha.style.height = win.style.height;msg.style.display = "block";obj.innerHTML = "0";}else{win.style.height = parseInt(tit.style.height) + 2*2;sha.style.height = win.style.height;obj.innerHTML = "2";msg.style.display = "none";}}//关闭;function cls(obj){var win = obj.parentNode.parentNode.parentNode;//var sha = win.nextSibling;win.style.visibility = "hidden";//sha.style.visibility = "hidden";}//显示/隐藏;function ShowHide(){if (xx!=null)if (xx.style.visibility == "hidden")xx.style.visibility = "visible";else if (xx.style.visibility == "visible")xx.style.visibility = "hidden";}//创建一个对象;function xWin(id,w,h,l,t,tit,msg){index = index+2;this.id = id;this.width = w;this.height = h;this.left = l;this.top = t;this.zIndex = index;this.title = tit;this.message = msg;this.obj = null;this.bulid = bulid;this.bulid();xx = document.getElementById('allx');xx.style.visibility = "visible";}//初始化;function bulid(){var str = ""+ "<div id='allx'><div id='xMsg'" + this.id + " "+ "style='"+ "z-index:" + this.zIndex + ";"+ "width:" + this.width + ";"+ "height:" + this.height + ";"+ "left:" + this.left + ";"+ "top:" + this.top + ";"+ "background-color:" + normal + ";"+ "color:" + normal + ";"+ "font-size:11px;"+ "font-family:Verdana;"+ "position:absolute;"+ "cursor:default;"+ "border:2px solid " + normal + ";"+ "' "+ "onmousedown='getFocus(this)'>"+ "<div "+ "style='"+ "background-color:" + normal + ";"+ "width:" + (this.width-2*2) + ";"+ "height:20;"+ "color:white;"+ "' "+ "onmousedown='startDrag(this)' "+ "onmouseup='stopDrag(this)' "+ "onmousemove='drag(this)' "+ "ondblclick='min(this.childNodes[1])'"+ ">"+ "<span style='width:" + (this.width-2*14-4) + ";padding-left:3px;'>" + this.title + "</span>"+ "<span style='width:14;border-width:0px;color:white;font-family:webdings;'onclick='min(this)'>0</span>"+ "<span style='width:14;border-width:0px;color:white;font-family:webdings;'onclick='cls(this)'>r</span>"+ "</div>"+ "<div style='"+ "width:100%;"+ "height:" + (this.height-20-4) + ";"+ "background-color:white;"+ "line-height:14px;"+ "word-break:break-all;"+ "padding:3px;"+ "'>" + this.message + "</div>"+ "</div>"+ "<div id='xshadow' style='"+ "width:" + this.width + ";"+ "height:" + this.height + ";"+ "top:" + this.top + ";"+ "left:" + this.left + ";"+ "z-index:" + (this.zIndex-1) + ";"+ "position:absolute;"+ "background-color:black;"+ "filter:alpha(opacity=40);"+ "'>by wildwind</div></div>";document.getElementById('msgbox').innerHTML = str;}//--></script><script language='JScript'><!--function initialize(){var a = new xWin("1",460,400,200,200,"效果怎么样!","<br><h1></h1>");}window.onload = initialize;//--></script></head><body onselectstart='return false' oncontextmenu='return false' scroll='no'><DIV class=textSheetstyle="BORDER-RIGHT: #3E8529 1px solid; BORDER-TOP: #639517 1px solid; BORDER-LEFT: #3E8529 1px solid; BORDER-BOTTOM: #3E8529 1px solid"><table width="242" height="160" border="1" ID="Table2"><td align="center" valign="middle" style="cursor:hand;font-size:32px;color: #808080" onMouseMove="bgColor='#ffff99'" onmouseout="bgColor='#FFFFFF'" onclick="ShowHide()">显示隐藏</td></table></DIV><div id="msgbox"></div></body></html>。
javascript实现弹出层效果弹出层和弹窗相似但是并不相同;弹窗和弹出层都是由⽤户触发的显⽰提⽰信息的弹出⾯板;但是弹窗只是显⽰⼀些信息,没有太多的复杂的交互事件;⽽弹层类似⼀个整个页⾯,可以实现页⾯的所有功能;现在前端弹层使⽤的很频繁,如⽀付宝⽀付弹层等…所以掌握弹层是⼀个很重要的技能。
如果只是简单的隐藏和切换,当然就不必说,我要说的html+animate+es6实现弹层;html弹层结构:<main class="main"><header class="head flex-center gray-theme">This is Header</header><section class="body flex-center"><ul class="btn-list flex-center btn-group"><li class="btn-box"><span class="btn inline-flex-center" data-position="top">上弹层</span></li><li class="btn-box"><span class="btn inline-flex-center" data-position="right">右弹层</span></li> <li class="btn-box"><span class="btn inline-flex-center" data-position="bottom">下弹层</span></li> <li class="btn-box"><span class="btn inline-flex-center" data-position="left">左弹层</span></li></ul></section><footer class="foot flex-center gray-theme">This is Footer</footer><!-- popup --><section class="popup flex-center hide hidden"><section class="popup-bg"></section><section class="popup-wrapper"><header class="title head flex-center"></header><section class="container body flex-center"></section><footer class="btn-wrapper foot flex-center"><ul class="btn-list flex-center"><li class="btn-box"><span class="btn cancel inline-flex-center">取消</span></li><li class="btn-box"><span class="btn confirm inline-flex-center">确认</span></li></ul></footer></section></section></main>css代码:-webkit-transform: translate3d(0, -400%, 0); -moz-transform: translate3d(0, -400%, 0); -ms-transform: translate3d(0, -400%, 0);-o-transform: translate3d(0, -400%, 0);transform: translate3d(0, -400%, 0);}100%{-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);}}@keyframes slideTop{@include slide-top;}@-webkit-keyframes slideTop{@include slide-top;}@mixin slide-top-hide{0%{-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);}100%{-webkit-transform: translate3d(0, -400%, 0); -moz-transform: translate3d(0, -400%, 0); -ms-transform: translate3d(0, -400%, 0);-o-transform: translate3d(0, -400%, 0);transform: translate3d(0, -400%, 0);}}@keyframes slideTopHide{@include slide-top-hide;}@-webkit-keyframes slideTopHide{@include slide-top-hide;}@mixin slide-right{0%{-webkit-transform: translate3d(400%, 0, 0); -moz-transform: translate3d(400%, 0, 0); -ms-transform: translate3d(400%, 0, 0);-o-transform: translate3d(400%, 0, 0);transform: translate3d(400%, 0, 0);}100%{-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);}}@keyframes slideRight{@include slide-right;}@-webkit-keyframes slideRight{@include slide-right;}@mixin slide-right-hide{0%{transform: translate3d(0, 0, 0);}100%{-webkit-transform: translate3d(400%, 0, 0); -moz-transform: translate3d(400%, 0, 0); -ms-transform: translate3d(400%, 0, 0);-o-transform: translate3d(400%, 0, 0);transform: translate3d(400%, 0, 0);}}@keyframes slideRightHide{@include slide-right-hide;}@-webkit-keyframes slideRightHide{@include slide-right-hide;}@mixin slide-bottom{0%{-webkit-transform: translate3d(0, 400%, 0); -moz-transform: translate3d(0, 400%, 0); -ms-transform: translate3d(0, 400%, 0);-o-transform: translate3d(0, 400%, 0);transform: translate3d(0, 400%, 0);}100%{-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);}}@keyframes slideBottom{@include slide-bottom;}@-webkit-keyframes slideBottom{@include slide-bottom;}@mixin slide-bottom-hide{0%{-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);}100%{-webkit-transform: translate3d(0, 400%, 0); -moz-transform: translate3d(0, 400%, 0); -ms-transform: translate3d(0, 400%, 0);-o-transform: translate3d(0, 400%, 0);transform: translate3d(0, 400%, 0);}}@keyframes slideBottomHide{@include slide-bottom-hide;}@-webkit-keyframes slideBottomHide{@include slide-bottom-hide;}@mixin slide-left{0%{-webkit-transform: translate3d(-400%, 0, 0);}100%{-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);}}@keyframes slideLeft{@include slide-left;}@-webkit-keyframes slideLeft{@include slide-left;}@mixin slide-left-hide{0%{-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);}100%{-webkit-transform: translate3d(-400%, 0, 0); -moz-transform: translate3d(-400%, 0, 0); -ms-transform: translate3d(-400%, 0, 0);-o-transform: translate3d(-400%, 0, 0);transform: translate3d(-400%, 0, 0);}}@keyframes slideLeftHide{@include slide-left-hide;}@-webkit-keyframes slideLeftHide{@include slide-left-hide;}@mixin popup-hide{0%{z-index: 99999;opacity: 1;}100%{z-index: -1;opacity: 0;}}@keyframes popupHide{@include popup-hide;}@-webkit-keyframes popupHide{@include popup-hide;}.popup{position: fixed;top: 0;left: 0;width: 100%;height: 100%;z-index: -1;opacity: 0;.popup-bg{position: absolute;left: 0;background: rgba(0,0,0, 0.5);width: 100%;height: 100%;z-index: 1;}.popup-wrapper{position: relative;width: 70%;height: 70%;margin: auto;background: #fff;border-radius: 5%;z-index: 100;}&.hidden{display: none;}&.show{z-index: 99999;opacity: 1;&.top{.popup-wrapper{-webkit-animation: slideTop 0.6s linear forwards;-moz-animation: slideTop 0.6s linear forwards;-ms-animation: slideTop 0.6s linear forwards;-o-animation: slideTop 0.6s linear forwards;animation: slideTop 0.6s linear forwards;}}&.right{.popup-wrapper{-webkit-animation: slideRight 0.6s linear forwards; -moz-animation: slideRight 0.6s linear forwards;-ms-animation: slideRight 0.6s linear forwards;-o-animation: slideRight 0.6s linear forwards;animation: slideRight 0.6s linear forwards;}}&.bottom{.popup-wrapper{-webkit-animation: slideBottom 0.6s linear forwards; -moz-animation: slideBottom 0.6s linear forwards; -ms-animation: slideBottom 0.6s linear forwards;-o-animation: slideBottom 0.6s linear forwards;animation: slideBottom 0.6s linear forwards;}}&.left{.popup-wrapper{-webkit-animation: slideLeft 0.6s linear forwards;-moz-animation: slideLeft 0.6s linear forwards;-ms-animation: slideLeft 0.6s linear forwards;-o-animation: slideLeft 0.6s linear forwards;animation: slideLeft 0.6s linear forwards;}}}&.hide{-webkit-animation: popupHide 0.7s linear forwards; -moz-animation: popupHide 0.7s linear forwards;-ms-animation: popupHide 0.7s linear forwards;-o-animation: popupHide 0.7s linear forwards;animation: popupHide 0.7s linear forwards;&.top{.popup-wrapper{-webkit-animation: slideTopHide 0.6s linear forwards; -moz-animation: slideTopHide 0.6s linear forwards; -ms-animation: slideTopHide 0.6s linear forwards;-o-animation: slideTopHide 0.6s linear forwards;animation: slideTopHide 0.6s linear forwards;}}&.right{.popup-wrapper{-moz-animation: slideRightHide 0.6s linear forwards;-ms-animation: slideRightHide 0.6s linear forwards;-o-animation: slideRightHide 0.6s linear forwards;animation: slideRightHide 0.6s linear forwards;}}&.bottom{.popup-wrapper{-webkit-animation: slideBottomHide 0.6s linear forwards; -moz-animation: slideBottomHide 0.6s linear forwards; -ms-animation: slideBottomHide 0.6s linear forwards;-o-animation: slideBottomHide 0.6s linear forwards;animation: slideBottomHide 0.6s linear forwards;}}&.left{.popup-wrapper{-webkit-animation: slideLeftHide 0.6s linear forwards;-moz-animation: slideLeftHide 0.6s linear forwards;-ms-animation: slideLeftHide 0.6s linear forwards;-o-animation: slideLeftHide 0.6s linear forwards;animation: slideLeftHide 0.6s linear forwards;}}}}html,body,.main{width: 100%;height: 100%;overflow: hidden;}.head,.body,.foot{width: 100%;}.head,.foot{height: 15%;}.body{height: 70%;}.gray-theme{background: #333;color: #fff;}.btn-list{width: 40%;min-width: 270px;height: 38px;.btn-box{width: 22%;height: 100%;padding-right: 4%;&:last-child{padding-right: 0;}}}.btn{line-height: 1em;width: 100%;height: 100%;border-radius: 10%;background: green;color: #ff0;text-align: center;vertical-align: middle;cursor: pointer;}js代码:class PopupComponent {constructor() {this.btnGroupEl = document.getElementsByClassName("btn-group")[0];this.popupEl = document.getElementsByClassName("popup")[0];this.popupBGEl = this.popupEl.querySelector(".popup-bg");this.popupTitleEl = this.popupEl.querySelector(".popup-wrapper .title");this.popupBodyEl = this.popupEl.querySelector(".popup-wrapper .body");this.cancelBtnEl = this.popupEl.querySelector(".popup-wrapper .btn.cancel");this.confirmBtnEl = this.popupEl.querySelector(".popup-wrapper .btn.confirm");this.popupElClasslist = this.popupEl.classList;this.LEGVALS = ["top", "right", "bottom", "left"];this.detaultPosition = "";this.position = "";this.SHOWCLASSNAME = "show";this.HIDECLASSNAME = "hide";this.HIDDENCLASSNAME = "hidden";}/*** 给弹窗的标题和主体添加内容* @param Object contentObj 传递的对象*/setContentForPopup(contentObj = {'title':'title', 'body': 'body'}) {try{if (!TB.isObject(contentObj)) {throw new Error("The param of setContentForPopup function error!");}let value;for (let prop in contentObj) {if (!contentObj.hasOwnProperty(prop)) {continue;}if (prop === 'title') {value = contentObj[prop];this.popupTitleEl.innerText = value;}if (prop === 'body') {value = contentObj[prop];this.popupBodyEl.innerText = value;}}} catch (e) {console.log("Popup element is not exist!");console.error(e);}}/*** 删除弹窗的类名* @return void*/deletePopupPreviousClassName() {if (this.HIDDENCLASSNAME && KB.checkType.isString(this.HIDDENCLASSNAME)) { this.popupElClasslist.remove(this.HIDDENCLASSNAME);}if (this.detaultPosition && KB.checkType.isString(this.detaultPosition)) {this.popupElClasslist.remove(this.detaultPosition);}this.detaultPosition = this.position;}/*** @return void*/popupHide() {if (this.popupElClasslist.contains(this.SHOWCLASSNAME)) {this.popupElClasslist.remove(this.SHOWCLASSNAME);this.popupElClasslist.add(this.HIDECLASSNAME);}}/*** 弹窗显⽰* @return void*/popupShow() {this.deletePopupPreviousClassName();if (this.popupElClasslist.contains(this.HIDECLASSNAME)) {this.popupElClasslist.remove(this.HIDECLASSNAME);this.popupElClasslist.add(this.SHOWCLASSNAME);this.popupElClasslist.add(this.position);}this.setContentForPopup({'title': this.position + ' title','body': this.position + ' body',});}/*** 按钮容器的点击事件* @param Object e 点击的事件event* @return void*/btnGroupClickEvent(e) {let btnEl = e.target || e.srcElement;if (!TB.isElement(btnEl)) {throw new Error("Get btn element error!");}this.position = btnEl.getAttribute("data-position");if (!TB.isString(this.position) || (this.LEGVALS.indexOf(this.position) < 0)) { throw new Error("Can not get position value from btn element!");}this.popupShow();}/*** 给DOM元素添加点击事件* @param Object elem 添加点击事件的dom元素* @param Function fn 触发事件调⽤的回调函数*/addClickEventFormElem(elem, fn) {TB.addHandler.call(this, elem, 'click', fn, false);}/*** 初始化函数* @return void*/init() {this.addClickEventFormElem(this.btnGroupEl, this.btnGroupClickEvent); this.addClickEventFormElem(this.cancelBtnEl, this.popupHide);this.addClickEventFormElem(this.confirmBtnEl, this.popupHide);}}let popupComponent = new PopupComponent();popupComponent.init();TB.addHandler:/** 给DOM元素添加事件* @param void* @return callback function 回调函数* */function addHandler(elem, type, callback, useCapture) {var checkType = checkArgumentType(),_document = document,_callback = checkType.isFunction(callback)? callback:function(){},_self = this;if (!checkType.isElement(elem) || !checkType.isString(type)) {return;}if (_document.addEventListener) {addHandler = function(elem, type, callback, useCapture) {elem.addEventListener(type, function(e) {_callback.call(_self, e);}, useCapture || false);}} else if (_document.attachEvent) {addHandler = function(elem, type, callback, useCapture) {elem.attachEvent("on" + type, function(e){_callback.apply(_self, [e]);});}} else {addHandler = function(elem, type, callback, useCapture) {elem["on" + type] = function(e) {_callback.call(_self, e);};}}addHandler(elem, type, callback, useCapture);}⾸先说⼀下弹窗的DOM结构:在外层⼀般是绝对定位,并使⽤flex布局使得内容居中;它的直接⼦元素⼀般有两个,⿊⾊背景层和内容容器;如图所⽰:样式的动画相信前端的同学⼀般都知道怎么做;但是有⼀点要注意,不要试图使⽤display来实现动画;我使⽤的解决的办法是⾸先动画的显⽰隐藏使⽤的z-index和opacity;但是这样存在开始时,弹窗会缓缓隐藏,那么我们可以⽤⼀个类表⽰display: none;点击显⽰弹层时,移除该类即可;对于js没什么好说的,⽆⾮是操作类名;但是有⼀点要注意事件注册和this的指向;注意我的addHandler函数,该函数只会判断⼀次浏览器的环境,不需要反复的判断浏览器的环境;在btnGroupClickEvent函数中this是指向PopupComponent类,⽽不是事件的event;所以addHandler函数中⾸先保存this的指向,然后使⽤call或者apply改变this的指向以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
JS实现弹出层效果很多时候我们想去某某⽹站⼲点什么的时候,就会让我们先注册登录后才可以访问内容,⽽现在很多⽹站注册登录的时候都会有⼀种遮罩层的效果,就是背景是带有透明度的⿊⾊遮罩,盖满整个⽹站,然后登录框弹出固定在屏幕的居中位置。
那么,今天就练练这个实⽤⽽简单的效果吧。
PS:这个是我学习后练习的demo!⾸先,需要有⼀个按钮来模拟登录:<button id="btnLogin"class="login-btn">登录</button>然后呢,我们想通过点击这个按钮实现这样⼀个效果:从上⾯这张图⽚,我们可以看到,灰⾊背景就是遮罩层,⽽浅蓝⾊的区域就是登陆框位置所在了。
OK,下⾯先看⼀下HTML结构和css样式:<div id="mask"></div> //遮罩层<div id="login"> //登陆框包裹层<div id="loginCon"> //表单内容<div id="close">点击关闭</div> //关闭按钮我是登录框哟!</div></div>这⾥只是将HTML结构拿出来讲⼀下,但是下⾯我们是通过JS来创建它们的,所以这⾥只是为了⽅便我们理解,并不需要放在html⽂件⾥。
CSS样式:#close{background:url(img/close.png) no-repeat;width:30px;height:30px;cursor:pointer;position:absolute;right:5px;top:5px;text-indent:-999em;}#mask{background-color:#ccc;opacity:0.7;filter: alpha(opacity=70);position:absolute;left:0;top:0;z-index:1000;}#login{position:fixed;z-index:1001;}.loginCon{position:relative;width:670px;height:380px;background:lightblue;border:3px solid #333;text-align: center;}css样式中需要注意⼀下z-index属性,因为我们需要让遮罩层盖住除了登录框之外所有的页⾯内容,所以,需要确保登录框的层次最⾼,遮罩层次之,所以⼀般将这两个的z-index属性值设置为⽐较⾼的数值,但遮罩层要⽐登陆框少⼀层。
js控制div弹出层实现⽅法本⽂实例讲述了js控制div弹出层实现⽅法。
分享给⼤家供⼤家参考。
具体分析如下:这是个功能很好,且容易调⽤和控制的弹出层。
感兴趣的朋友可以调试运⾏⼀下看看效果如何~O(∩_∩)O~<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>弹出窗⼝(可拖动,背景灰⾊透明)</title><script type="text/javascript"><!--/*FileName:AlertMsg.jstitle:提⽰标题content:提⽰的内容*/document.write("<style type=\"text/css\">*{padding:0; margin:0}.close{float:right;cursor:default}</style>")function $(id){ return document.getElementById(id)}function AlertMsg(title,content){var msgw,msgh,msgbg,msgcolor,bordercolor,titlecolor,titlebg,con;con = "<form><table style='margin:10px 15px 15px 15px; border:0;'><tr><th style='border:0; line-height:22px; padding:3px 0; vertical-align:top;font-weight:bold;'>分类:</th><td style='border:0; line-height:22px; padding:3px 0; vertical-align:top;width:75%;'><inpu //弹出窗⼝设置msgw = 300; //窗⼝宽度msgh = 150; //窗⼝⾼度msgbg = "#FFF"; //内容背景msgcolor = "#000"; //内容颜⾊bordercolor = "#000"; //边框颜⾊titlecolor = "#FFF"; //标题颜⾊titlebg = "#369"; //标题背景//遮罩背景设置var sWidth,sHeight;sWidth = screen.availWidth;sHeight = document.body.scrollHeight;//创建遮罩背景var maskObj = document.createElement("div");maskObj.setAttribute('id','maskdiv');maskObj.style.position = "absolute";maskObj.style.top = "0";maskObj.style.left = "0";maskObj.style.background = "#777";maskObj.style.filter = "Alpha(opacity=30);";maskObj.style.opacity = "0.3";maskObj.style.width = sWidth + "px";maskObj.style.height = sHeight + "px";maskObj.style.zIndex = "10000";document.body.appendChild(maskObj);//创建弹出窗⼝var msgObj = document.createElement("div")msgObj.setAttribute("id","msgdiv");msgObj.style.position ="absolute";msgObj.style.top = (screen.availHeight - msgh) / 4 + "px";msgObj.style.left = (screen.availWidth - msgw) / 2 + "px";msgObj.style.width = msgw + "px";msgObj.style.height = msgh + "px";msgObj.style.fontSize = "12px";msgObj.style.background = msgbg;msgObj.style.border = "1px solid " + bordercolor;msgObj.style.zIndex = "10001";//创建标题var thObj = document.createElement("div");thObj.setAttribute("id","msgth");thObj.className = "DragAble";thObj.style.cursor = "move";thObj.style.padding = "4px 6px";thObj.style.color = titlecolor;thObj.style.background = titlebg;var titleStr = "<a class='close' title='关闭' style='cursor:pointer' onclick='CloseMsg()'>关闭</a>"+"<span>"+ title +"</span>";thObj.innerHTML = titleStr;//创建内容var bodyObj = document.createElement("div");bodyObj.setAttribute("id","msgbody");bodyObj.style.padding = "10px";bodyObj.style.lineHeight = "1.5em";bodyObj.innerHTML = con;var txt = document.createTextNode(content)bodyObj.appendChild(txt);//⽣成窗⼝document.body.appendChild(msgObj);$("msgdiv").appendChild(thObj);$("msgdiv").appendChild(bodyObj);}function CloseMsg(){//移除对象document.body.removeChild($("maskdiv"));$("msgdiv").removeChild($("msgth"));$("msgdiv").removeChild($("msgbody"));document.body.removeChild($("msgdiv"));}//拖动窗⼝var ie = document.all;var nn6 = document.getElementById&&!document.all;var isdrag = false;var y,x;var oDragObj;function moveMouse(e) {if (isdrag) {oDragObj.style.top = (nn6 ? nTY + e.clientY - y : nTY + event.clientY - y)+"px";oDragObj.style.left = (nn6 ? nTX + e.clientX - x : nTX + event.clientX - x)+"px";return false;}}function initDrag(e) {var oDragHandle = nn6 ? e.target : event.srcElement;var topElement = "HTML";while (oDragHandle.tagName != topElement && oDragHandle.className != "DragAble") {oDragHandle = nn6 ? oDragHandle.parentNode : oDragHandle.parentElement;}if (oDragHandle.className=="DragAble") {isdrag = true;oDragObj = oDragHandle.parentNode;nTY = parseInt(oDragObj.style.top);y = nn6 ? e.clientY : event.clientY;nTX = parseInt(oDragObj.style.left);x = nn6 ? e.clientX : event.clientX;document.onmousemove = moveMouse;return false;}}document.onmousedown = initDrag;document.onmouseup = new Function("isdrag=false");//--></script></head><body><table width="600" border="0" cellspacing="0" cellpadding="0"><tr ><td height="100" align="center" ><p><a href="javascript:AlertMsg("温馨提⽰",'')">点我试试!</a></p> </td></tr></table></div></body></html>希望本⽂所述对⼤家的javascript程序设计有所帮助。
JS使⽤遮罩实现点击某区域以外时弹窗的弹出与关闭功能⽰例本⽂实例讲述了JS使⽤遮罩实现点击某区域以外时弹窗的弹出与关闭功能。
分享给⼤家供⼤家参考,具体如下:HTML部分:<div id="div">点击除开div的区域可以弹出弹窗</div><div id="cover"></div><div id="box">点击除开div和弹窗的区域可以关闭弹窗</div>CSS部分:#div{/*设置z-index属性必须设置position:relative或absolute*/position:relative;/*设置div位于遮罩的上⽅*/z-index:2;width:300px;height:200px;border:1px solid grey;}#cover{position:fixed;width:100%;height:100%;left:0;top:0;/*设置遮罩位于div的下⽅*/z-index:1;}#box{border:1px solid grey;/*当弹窗显⽰时,屏幕滚动时,弹窗始终保持位置固定在屏幕正中,不随屏幕滚动⽽变化位置*/position:fixed;width:400px;height:300px;left:50%;top:50%;/*配合left:50%和top:50%属性使得浮出层的中⼼默认在屏幕正中,margin-top为height的⼀半,margin-left为width的⼀半*/margin:-150px 0 0 -200px;/*设置弹窗位于遮罩的上⽅*/z-index:2;/*开始时隐藏弹窗*/display:none;}JavaScript部分:document.getElementById("cover").onclick = function() {if (document.getElementById("box").style.display == "block") {document.getElementById("box").style.display = "none";document.getElementById("cover").style.background = "white";}else {document.getElementById("box").style.display = "block";document.getElementById("cover").style.background = "#aaa";}}更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家JavaScript程序设计有所帮助。
js实现div弹出层的⽅法本⽂实例讲述了js实现div弹出层的⽅法。
分享给⼤家供⼤家参考。
具体分析如下:话说现在各种插件出来了要实现弹出层真是太简单了,但个⼈有时觉得那些插件不实⽤经常会找⼀些纯js原⽣态的东西,下⾯来给各位分享⼀个原⽣太js div弹出层实例,有需要的朋友可⼀起看看。
这个不⽤多说了,直接贴代码吧.有码有注释:复制代码代码如下:/** 弹出DIV层*/function showDiv(){var Idiv = document.getElementById("Idiv");var mou_head = document.getElementById('mou_head');Idiv.style.display = "block";//以下部分要将弹出层居中显⽰Idiv.style.left=(document.documentElement.clientWidth-Idiv.clientWidth)/2+document.documentElement.scrollLeft+"px"; Idiv.style.top =(document.documentElement.clientHeight-Idiv.clientHeight)/2+document.documentElement.scrollTop-50+"px";//以下部分使整个页⾯⾄灰不可点击var procbg = document.createElement("div"); //⾸先创建⼀个divprocbg.setAttribute("id","mybg"); //定义该div的idprocbg.style.background = "#000000";procbg.style.width = "100%";procbg.style.height = "100%";procbg.style.position = "fixed";procbg.style.top = "0";procbg.style.left = "0";procbg.style.zIndex = "500";procbg.style.opacity = "0.6";procbg.style.filter = "Alpha(opacity=70)";//背景层加⼊页⾯document.body.appendChild(procbg);document.body.style.overflow = "hidden"; //取消滚动条//以下部分实现弹出层的拖拽效果var posX;var posY;mou_head.onmousedown=function(e){if(!e) e = window.event; //IEposX = e.clientX - parseInt(Idiv.style.left);posY = e.clientY - parseInt(Idiv.style.top);document.onmousemove = mousemove;}document.onmouseup = function(){document.onmousemove = null;}function mousemove(ev){if(ev==null) ev = window.event;//IEIdiv.style.left = (ev.clientX - posX) + "px";Idiv.style.top = (ev.clientY - posY) + "px";}}function closeDiv() //关闭弹出层{var Idiv=document.getElementById("Idiv");Idiv.style.display="none";document.body.style.overflow = "auto"; //恢复页⾯滚动条var body = document.getElementsByTagName("body");var mybg = document.getElementById("mybg");body[0].removeChild(mybg);}<!--弹出层开始--><div id="Idiv" style="display:none; position:absolute; z-index:1000; background:#67a3d9;"><div id="mou_head" style="width="100px; height=10px;z-index:1001; position:absolute;">这个是⽤来实现拖层</div> <input type="button" value="关闭" onclick="closeDiv();" /></div><!--结束-->⾄于⼀些美化效果,⼤家可以⾃⼰去修修改改了。
JS +DIV+CSS弹出层并且后面有遮盖效果(首先要应用Jquery)//获得当前页面高度function GetPageHeight(){if ($.browser.msie){return patMode == "CSS1Compat" ? document.documentElement.clientHeight :document.body.clientHeight;}else{return self.innerHeight;}}//获得当前页面宽度function GetPageWidth(){if ($.browser.msie){return patMode == "CSS1Compat" ? document.documentElement.clientWidth :document.body.clientWidth;}else{return self.innerWidth;}}//显示遮盖层function ShowCoverDiv(){//如果遮盖层已经存在,就删除它$("#coverdiv").remove();//设置BODY的样式(可选)$("body").css({ "position": "absolute" ,"margin-top":"0px","margin-left":"0px"});//创建出遮盖层$("body").append("<div id='coverdiv'></div>");//设置遮盖层的样式$("#coverdiv").css({ "display": "none", "left": "0px", "top": "0px", "position": "absolute", "z-index": "5", "background-color": "#777", "width":GetPageWidth(), "height": GetPageHeight(), "filter": "alpha(opacity=60)" });}//显示弹出层(参数为要显示的Div内部的Html内容)function ShowPopDiv(innerHtml){//调用遮盖方法ShowCoverDiv();//创建弹出DIV$("body").append("<div id='TextDiv'></div>");//接受传进来的HTML标签if (innerHtml != null){$(innerHtml).css({ "display": "block" });$(innerHtml).appendTo("#TextDiv");}//设置弹出层在弹出情况下的位置(居中)var margintop = (GetPageHeight() - document.getElementById("TextDiv").offsetHeight) / 2;var marginleft = (GetPageWidth() - document.getElementById("TextDiv").offsetWidth) / 2;$("#TextDiv").css({ "display": "none", "position": "absolute", "z-index": "9", "top": margintop, "left": marginleft });//渐渐显示出消息层$("#coverdiv").show("slow");$("#TextDiv").show("slow");$("#TextDiv").draggable(); //拖动//当页面大小改变,那么弹出层会始终居中,遮盖层的大小也随之改变window.onresize = function(){if (document.getElementById("coverdiv") != null && document.getElementById("TextDiv") != null)$("#coverdiv").css({ "width": GetPageWidth(), "height": GetPageHeight() });if (document.getElementById("TextDiv") != null){var margintop = (GetPageHeight() - document.getElementById("TextDiv").offsetHeight) / 2;var marginleft = (GetPageWidth() -document.getElementById("TextDiv").offsetWidth) / 2;$("#TextDiv").css({ "top": margintop, "left": marginleft }); }}}//隐藏遮盖层和弹出层function closeDiv(){$("#coverdiv").hide("slow");$("#TextDiv").hide("slow");}。
JavaScript练手小技巧:页面遮罩层有时候,我们需要在页面上创建一个遮罩层,以突出某个对话框。
比如,某度的登录框:这个遮罩层,盖住了整个页面,并且随着页面的滚动,也一直稳如老狗,贴在页面上,纹丝不动。
看上去很复杂,其实很简单~!1. 就是一个固定定位的标签,贴在整个窗口上,背景色为半透明的黑色~!2. 还可以借机去掉窗口的滚动条,这样就连窗口滚动都不可以。
3. 有的遮罩层点击后,还可以去掉它。
这里利用一个按钮来动态生成遮罩层:<button id="btn" type="button">点击弹出遮罩层</button>CSS.mask{left: 0;top: 0;bottom:0;right:0;position: fixed;z-index: 99999;background: rgba(0,0,0,0.6);}/* <html>标签要用的样式,跟窗口一样大,内容超出隐藏,避免出现滚动条 */ .htmlMask{height: 100%;width: 100%;overflow: hidden;}JS部分let btn = document.getElementById("btn");/** 生成 mask* */let createMask = ()=>{// 如果 mask 已经存在了,就不用再创建mask了if( document.getElementById("mask")){return true;}let mask = document.createElement("div");mask.id = "mask";mask.className = "mask";// 把 mask 添加到body 里。
BootstrapModal遮罩弹出层(完整版)之前发表过⼀篇⽂章叫,其实那个只是⼀个弹出层代码⽽已,并不是仿造Bootstrap的,Bootstrap modal是给外层添加固定fixed,然后内容使⽤⾃适应靠上居中⽅式。
今天分享的这篇⽂章正是这种⽅式。
html结构考虑到内容区域需要居中对齐,所以⾄少要有⼀个div来定位和显⽰背景,再⽤⼀个div居中内容,内容区域想分成header、body和footer。
<div class="rs-dialog" id="myModal1"><div class="rs-dialog-box"><a class="close" href="#">×</a><div class="rs-dialog-header"><h3>标题</h3></div><div class="rs-dialog-body"><p>内容</p></div><div class="rs-dialog-footer"><input type="button" class="close" value="Close" style="float:right"></div></div></div>添加样式透明背景⽤background和opacity来实现,也可以选择rgba,只是IE8及以下浏览器不⽀持。
为了让⼀个position为fixed的div铺满整个窗⼝,可以将其top、right、left、bottom属性全部设为0。
网上收集到几个JS遮罩层效果,可以实现图片弹出、背景变色,类似于windows 关机效果,具体的JS如下:1.Thickbox -基于jQuery,支持AJAX,轻量级的而且比较高效。
可以在lightbox中使用图片或HTML。
大小约为40k,目前还可作为WordPress的插件使用。
2.GreyBox -创建iframe的弹出界面,可使用图片、HTML 及URL,大小约为20k。
3.GreyBox Redux -基于jQuery,比GreyBox 更轻。
4.Lightbox v2.0 -最初是为了显示图片设计的,使用了prototype和sciptaculous,所以有些沉重,但对于图片来说很好用。
5.Lightbox with moo.fx -基于prototype,但只能用于图片。
6.Lightbox Gone Wild - modal 模式窗口的lightbox,可使用html<、表单及图片,也是基' 于prototype 的,所以有一些heavy。
7.Multi-faceted LIghtbox -又一个基于prototype的,不过这个为各种可用于lightbox的数据类型提供了选项。
8.Leightbox -和Lightbox Gone Wild 很相似,只是Leightbox 以html 方式存放内容,所以可以被搜索引擎索引到。
9.xilinus -使用简单,基于prototype,很容易定制,可使用多种内容选项。
10.Lightbox Plus -可以自动根据窗口的大小缩放图片。
11.Suckerfish Hover Lighbox -和传统的lightbox 不一样,它在打开lightbox 的时候,还可以点击访问页面上的其它元素。
12.Litebox -这是Lightbox的另一个版本,代码量减少了,使用了moo.fx和prototype-lite,如果页面需要减肥的话,可以选择这个。
JS简单实现点击按钮或⽂字显⽰遮罩层的⽅法本⽂实例讲述了JS简单实现点击按钮或⽂字显⽰遮罩层的⽅法。
分享给⼤家供⼤家参考,具体如下:运⾏效果图如下:完整代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>点击⽂字弹出⼀个DIV层窗⼝代码</title><meta charset="urf-8"/><style>.black_overlay{display: none;position: absolute;top: 0%;left: 0%;width: 100%;height: 100%;background-color: black;z-index:1001;-moz-opacity: 0.8;opacity:.80;filter: alpha(opacity=88);}.white_content {display: none;position: absolute;top: 25%;left: 25%;width: 55%;height: 55%;padding: 20px;border: 10px solid orange;background-color: white;z-index:1002;overflow: auto;}</style></head><body><p>⽰例弹出层:<a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">请点这⾥</a></p><div id="light" class="white_content">这是⼀个层窗⼝⽰例程序. <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">点这⾥关闭本窗⼝</a></div> <div id="fade" class="black_overlay"></div></body></html>更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家JavaScript程序设计有所帮助。
JS+CSS实现弹出全屏灰⿊⾊透明遮罩效果的⽅法本⽂实例讲述了js+CSS实现弹出⼀个全屏灰⿊⾊透明遮罩效果的⽅法。
分享给⼤家供⼤家参考。
具体分析如下:在众多的⽹站都有这样的效果,当进⾏⼀定的操作之后,会弹出⼀个灰⿊⾊的半透明的遮罩,在上⾯可以操作指定的内容,例如可以弹出⼀个登陆框之类的内容,下⾯就介绍⼀下如何实现此种效果,代码实例如下:复制代码代码如下:<!DOCTYPE html><html><head><meta charset=" utf-8"><meta name="author" content="https:///" /><title>CSS如何实现弹出⼀个全屏灰⿊⾊透明遮罩效果-</title><style type="text/css">*{margin:0px;padding:0px;}.zhezhao{width:100%;height:100%;background-color:#000;filter:alpha(opacity=50);-moz-opacity:0.5;opacity:0.5;position:absolute;left:0px;top:0px;display:none;z-index:1000;}.login{width:280px;height:180px;position:absolute;top:200px;left:50%;background-color:#000;margin-left:-140px;display:none;z-index:1500;}.content{margin-top:50px;color:red;line-height:200px;height:200px;text-align:center;}</style><script type="text/javascript">window.onload=function(){var zhezhao=document.getElementById("zhezhao");var login=document.getElementById("login");var bt=document.getElementById("bt");var btclose=document.getElementById("btclose");bt.onclick=function(){zhezhao.style.display="block";login.style.display="block";}btclose.onclick=function(){zhezhao.style.display="none";login.style.display="none";}}</script></head><body><div class="zhezhao" id="zhezhao"></div><div class="login" id="login"><button id="btclose">点击关闭</button></div><div class="content">欢迎您,<button id="bt">点击弹出遮罩</button></div></body></html>以上实现了基本的遮罩功能,当点击弹出遮罩,会弹出⼀个对象,当点击关闭,遮罩效果消失。
使⽤js实现关闭js弹出层的窗⼝<script type="text/javascript">function toggle() {theObj = document.getElementById('Sunyanzi').style;if ( theObj.display == "none" ) theObj.display = "block"; else theObj.display = "none";}</script><div id="Sunyanzi" style="display:none">你看我出现了~~~</div><br /><input type="button" onclick="toggle()" value="点⼀下试试看 ...?" />//创建你的弹出层var dvMsg = document.createElement("div");strHtml = "<div class='####'>弹出层内容</div>"strHtml += " <div class='####'><input type='button' value='关闭' onclick='btnclick()'></div>"dvMsg.innerHTML = strHtml;document.body.appendChild(dvMsg);// 关闭按钮btnclick = function (){document.body.removeChild(dvMsg);-------------------------<div id="tanchu">弹出层内容</div>function open(){document.getElementById(tanchu).style.display=""; //显⽰}function close(){document.getElementById(tanchu).style.display="none"; //不显⽰(页⾯初始化的时候同样加载⼀遍)}。
js点击按钮实现带遮罩层的弹出视频效果本⽂实例讲解了js点击按钮实现带遮罩层的弹出视频效果,涉及到css以及JavaScript,分享给⼤家供⼤家参考,具体内容如下最终显⽰效果:点击红⾊按钮,会有视屏弹出并带有遮罩层点击黄⾊区域可以关闭视频并回到最初的状态。
页⾯主要代码:main中主要包含⼀个a,控制显⽰的按钮。
设置有id值。
<div class="main"><a href="javascript:;" class="video" id="video"></a></div>以下代码就是⽤来控制视频的显⽰效果,.video-btn 包含了视频显⽰区域以及右边黄⾊关闭按钮(虽然黄⾊关闭按钮有点丑)。
id="shadow"⽤来控制遮罩层。
主要是对各元素设置id的值后⾯js就可以⽅便的调⽤各元素。
<div class="video-btn" id="video-btn"><div class="video-area" id="video-area"></div><a class="video-shut" id="video-shut">x</a></div><div id="shadow"></div>下⾯来看⼀下有关css⾸先设置video-btn区域。
.video-btn{position: absolute;width:600px;height: 300px;background:black;top:50%;left: 50%;margin-top: -150px;margin-left:-300px;display: none;z-index: 101;}.video-area{float:left;width:500px;height: 300px;background:red;}.video-shut{height:100px;width:100px;font-size:40px;color:pink;float:left;text-align: center;/*line-height: 50px;*/background: yellow;display: block;padding-top:30px;}然后设置遮罩层的css#shadow{position: absolute;opacity: 0.5;filter:alpha(opacity=50);bottom:0;left: 0;right: 0;top: 0;background:black;z-index: 100;display: none;}重点1:此处⼀定把两个div设为绝对定位,让其脱离⽂档流。
js与css实现弹出层覆盖整个页⾯的⽅法本⽂实例讲述了js与css实现弹出层覆盖整个页⾯的⽅法。
分享给⼤家供⼤家参考。
具体实现⽅法如下:弹出层透明背景加框的常⽤样式和结构如下:复制代码代码如下:.alertMessageBg{position:fixed;_position:absolute;width:100%;height:100%;left:0;top:0;background:#000;opacity:0.5;-moz-opacity:0.5;filter:alpha(opacity=50);z-index:97;display:none;}.alertMessageDivBorder{position:fixed;_position:absolute;width:750px;height:370px;left:50%;top:50%;margin:-185px 0 0 -375px;background:#000;filter:alpha(opacity=30);-moz-opacity:0.3;opacity:0.3;z-index:98;display:none;}.alertMessageDiv{position:fixed;_position:absolute;width:730px;height:350px;left:50%;top:50%;margin:-175px 0 0 -365px;background:#fff;z-index:99;display:none;font-size:14px;}<div class="alertMessageBg"></div><div class="alertMessageDivBorder"></div><div class="alertMessageDiv"></div>弹出层背景覆盖整个⽹页的⽅法1.css⽅法复制代码代码如下:.alertMessageBg{position:fixed;_position:absolute;width:100%;height:100%;left:0;top:0;background:#000;opacity:0.5;-moz-opacity:0.5;filter:alpha(opacity=50);z-index:97;display:none;}2.js⽅法复制代码代码如下:.alertMessageBg{position:absolute;width:100%;height:100%;left:0;top:0;background:#000;opacity:0.5;-moz-opacity:0.5;filter:alpha(opacity=50);z-index:97;display:none;}var bgWidth = document.body.clientWidth + 'px', bgHeight = document.body.clientHeight + 'px', alertBgNode = $('.alertMessageBg');alertBgNode.css({'width':bgWidth,'height':bgHeight});对⽐以上两种⽅法,显然css⽅法更省事,尤其在不⽤兼容ie6的现在。