简易的全屏透明遮罩(lightBox)

来源:planeart 时间:2010-06-09 20:56:00 

前不久有个正要毕业的网友给我发邮件,他毕业设计需要实现锁屏的效果,但是他没有能看懂我之前发布的对话框源码,他问能不能把锁屏相关代码说明下,我当时说过两天就发。由于最近比较忙,我现在才想起来,但愿现在此文还来得及。

步入正题:

现在全屏的半透明遮罩层在web2.0网站应用非常广泛了,绝大多数遮罩是通过计算页面大小,然后覆盖一个与页面同等大小的层实现,如腾讯qzone, wordpress后台。这种方式本来无可非议,但是在页面很长的时候在IE8下会失效(国外资料的解释是与机器显卡相关),有些完美情节的同学遇到这个问题后就抓破了头,无奈之下甚至想让IE8强制使用IE7的方式解析他的作品。其实我们有一个更好的方法,咱们用CSS去解决它!

还记得“position:fixed”吗?它是css2的一个新增的属性,他可以让一个元素静止在页面上,拖动滚动条也不会动,如Qzone顶部固定的导航栏就是这样实现的。同样我们也可以用一个100%高宽的层覆盖浏览器视口,这样就可以实现全屏遮罩了,不用再计算页面的大小,调整浏览器大小的时候也不要去动态修改尺寸了。



可是有一个头疼的问题,IE6不支持“position:fixed”,咱们只能通过js动态的修改它的TOP值以模拟静止定位,拖动滚动条的时候遮罩成肯定会抖动,因为每改变一次IE会重新渲染一次。但是微软却给我们提供了一个非常有趣的特性,如果给html或者body标签设置一个静止定位的背景图片,层在拖动滚动条的时候就不会抖动了,几乎完美的模拟了“position:fixed”。我在实际项目中发现这个特性他还能触发其他的特异功能,以后再说明。

为了省事,咱们针对IE6用万恶expression在CSS中写点脚本,拖动滚动条的时候重新定位我们的遮罩层。传说中expression是非常耗性能的,可是咱们的expression几乎没有损耗,有兴趣的同学可以深入研究下expression。




好了,兼容IE6这个大头娃娃后,咱们的锁屏遮罩已经通杀主流浏览器了,但是呢用js写效果的同学们总是非常的蛋疼,总想折腾点什么来,咱们就再添加一点脚本,让锁屏的时候后可以中断用户操作,把滚动条、滚轮、tab键、全选、刷新、右键统统禁止掉,模拟真正的‘锁屏’:




原文:http://www.planeart.cn/?p=792

标签:lightbox,web2.0,浏览器
0
投稿

猜你喜欢

  • 微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法

    2024-05-11 09:16:42
  • np.where()[0] 和 np.where()[1]的具体使用

    2023-04-21 20:21:29
  • Python中的模块和包概念介绍

    2023-06-06 09:13:53
  • PHP PDOStatement::errorInfo讲解

    2023-06-04 14:11:53
  • python Canny边缘检测算法的实现

    2023-04-23 20:41:55
  • Python使用smtplib模块发送电子邮件的流程详解

    2023-09-28 03:28:35
  • 验证码的最高境界

    2008-05-08 14:17:00
  • 判断python对象是否可调用的三种方式及其区别详解

    2022-09-07 13:23:08
  • python数字类型和占位符详情

    2022-10-03 06:36:32
  • MySQL Order By语法

    2011-01-04 19:58:00
  • pandas分区间,算频率的实例

    2021-12-12 01:27:24
  • 深入理解python多进程编程

    2023-03-20 09:07:20
  • 解决python pandas读取excel中多个不同sheet表格存在的问题

    2022-03-12 06:59:33
  • mssql server 存储过程里,bulk insert table from '路径+文件',路径固定,文件名不固定的实现方法

    2024-01-13 17:39:18
  • Flask接口签名sign原理与实例代码浅析

    2023-06-21 23:18:13
  • python实现高斯投影正反算方式

    2022-11-17 08:58:19
  • JavaScript Date()在页面内显示日期

    2008-02-05 10:18:00
  • 20个优秀网站助你征服CSS[译]

    2008-09-21 13:21:00
  • Python的shutil模块中文件的复制操作函数详解

    2023-04-13 16:59:22
  • python制作一个桌面便签软件

    2021-02-23 05:20:40
  • asp之家 网络编程 m.aspxhome.com