弹出层效果是一个很实用的功能,很多网站都采用了这种方式实现登录和注册,比如百度:
弹出层的特点:点击登录或注册的时候在页面的中间部分弹出一个登录或注册区域并且页面有一个遮罩层,而且登录框在遮罩层之上,也就是登陆框的z-index值要大于遮罩层的z-index值。当点击关闭或者遮罩层时关闭登录或者注册框(有的网页没有实现点击遮罩层关闭登录或注册区域的功能。)。
简单的说一下实现的过程。
首先是遮罩层。遮罩层是在页面动态加载的过程中创建的,因为遮罩层需要遮住整个页面,所以遮罩层的高度是通过在JavaScript计算得到,而它的宽度是整个页面的宽度,这个也很容易得到。还需要给它设一个z-index值,尽可能很大,因为需要遮住整个页面。当然透明度也是必须的。
上面代码中的pageWidth和pageHeight就会页面的宽度和高度值,通过
获取。这样遮罩层就完成了。
再来说说弹出层的效果。
弹出层在页面的中间部分显示(这也是关键的步骤),也就是弹出层距离页面左边和右边的距离相等,距离页面上边的距离和距离下边的距离相等。注意是在可是区域中。
用公式表示就是:
left=right=(页面可是区域宽度 - 弹出层宽度)/2;top=bottom=(页面可是区域的高度-弹出层高度)/2
而这里可是区域的宽度等于页面的宽度,因为页面底部米有滚动条。底部有滚动条的网页也是奇葩啊。设置它的left和top值之前必须已经将它添加到页面当中去了,否则无法设置。
编程之家提醒大家需要注意,这里弹出层的定位方式是固定定位的,而且它的z-index值要大于遮罩层的。
EventUtil是一个为了兼容浏览器事件处理函数而写的一个对象,具体的实现在这里:
到这里大部分的内容就完成了,其实现实起来很简单。只要知道了原理,剩下的就是实现方式了。
源码(写的不规范):
代码到此结束,本文写的不好,还请各位大侠提出宝贵意见。同时感谢大家一直以来对脚本之间网站的支持,在此,编程之家小编祝大家元旦快乐。
原文链接:https://www.f2er.com/js/50787.html