简单的jQuery弹出遮罩层
特点:代码量少,简单易用。没有格式限制,随意的代码填充。舍弃了在ie6/7/8下的完全兼容(背景不透明),仅保证信息内容可正常阅读。
缺点:考虑到在触屏手机上的效果,未添加对scroll事件的响应,否则有可能永远看不到弹出的内容(网页的缩放会影响scrollTop值)。
相关插件要么功能太强大体积也大,要么是固定的格式需要预设标题、内容、关闭按钮等。非固定样式又非常灵活的一时没找到,就把手头的一个有bug的原生javascript弹出层改动了一下,借助jQuery绕开了麻烦的兼容性问题,正好如今每个项目都用了jQuery,最终效果凑合着用还是可以的。更好的实现方法和能兼容手机的方法还望有高手多多指点,发现有问题也请多多批评指正。
HTML
<div id="background"></div> <div id="content"> 这里可以是随意的标签、随意的内容 - mming </div> <input id="btn" type="button" value="点我" />
CSS
#background {position:absolute; z-index:998; top:0px; left:0px; background:rgb(50,50,50);background:rgba(0,0,0,0.5); display:none;} #content {position:absolute; width:500px; z-index:999; padding:10px; background:#fff; border-radius:5px; display:none;}
jQuery
$(function() { function conPosition() { var oBackground = document.getElementById("background"); var dw = $(document).width(); var dh = $(document).height(); oBackground.style.width = dw+'px'; oBackground.style.height = dh+'px'; var oContent = document.getElementById("content"); var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; var l = (document.documentElement.clientWidth - oContent.offsetWidth) / 2; var t = ((document.documentElement.clientHeight - oContent.offsetHeight) / 2) + scrollTop; oContent.style.left = l + 'px'; oContent.style.top = t + 'px'; } $("#btn").click(function() { $("#background, #content").show(); conPosition(); }); $("#background").click(function() {$("#background, #content").hide();}); //点击黑色背景隐藏弹出层,当然可以绑定在任意一个按钮上 $(window).resize(function() {conPosition();}); //$(window).scroll(function() {conPosition();}); //开启内容跟随垂直滚动条(水平滚动条需要处理的问题更多,暂时没有考虑) });
更多相关:jquery特效、jquery焦点图、jquery选项卡、jquery表单验证、jquery闪烁字、原生js特效
mming原创,转载请注明:http://www.mming.cc/blog/?p=701