Ajax设计模式之Lightbox

2016-02-19 20:04 2 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐Ajax设计模式之Lightbox,赶紧看过来吧!

【 tulaoshi.com - Web开发 】

Lightbox 这个词还真不好翻译,勉强硬解为"灯笼"。

Lightbox的效果类似于WinXP操作系统的注销/关机对话框,除去屏幕中心位置的对话框,其他的区域都以淡出的效果逐渐变为银灰色以增加对比度,此时除了对话框内的表单控件,没有其他区域可以获取焦点。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

Lightbox的作用则相当于从前只在IE中被支持的"Modal Dialog";现在在FireFox也可用window.open(url, name, " modal=yes ");

来实现同样的效果。使用"Modal Dialog"将限制用户的操作于弹出的对话框中,只有完成设定好的操作后方才关闭。在一些逻辑敏感的应用中强制吸引用户的注意力以防止用户的误操作导致程序逻辑淆乱。
其实 Lightbox 并不新鲜,在前年Ajax未诞生之前,它是以 "Inline Popup"的名号出现的。诞生的原因是因为屏蔽弹出窗口的技术纷纷被浏览器采用,而浏览器厂商间也没有一个统一的 Popup 解决方案。当时我记得还有一些说"Inline Popup"破解了弹出窗口屏蔽的报道。

"Inline Popup" 并不被很多人关注,不过我还是发现国内的163信箱去年改版推出的时候大量使用了此效果。Ajax 名正言顺之时,"Inline Popup"也重装再现了,并换了一个有美感的名字 "Lightbox"。

在今年,Lightbox JS最早被其作者Lokesh Dhakar用来放大显示图片覆盖于当前页面之上,其是用CSS来定义图片容器,用一幅半透明的png图片实现渐变阴暗的效果。使用相当简单:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

1.加载lightbox.js

2. 给图片链接增加一个rel="lightbox"属性。如:

a href="images/image-1.jpg"rel="lightbox"title="my caption"image #1/a受 Lightbox 的启发,Chris Campbell 认为并决定让Lightbox Gone Wild!。他引入了Prototype1.4.0,配合CSS与HTML 标签的class属性重新实现Lightbox的效果,同时扩展LightBox原来的覆盖显示图片的单纯功能,使得可以通过流行的异步Updator技术动态加载表单。可以去体验一下他提供的 demo。不过似乎他的实现有一些bug,因为该demo在我的FireFox1.5和IE7beta2上都会导致CPU占用率100%。

alwaysBETA 很快也推出了自己的改进方案。他没有增加新的功能,但是通过引入微型效果类库Moo.FX让Lightbox更漂亮,更容易定制。

第一次使用WinXP的时候,关机时的阴暗渐变效果让我颇为惊艳。利用Lightbox引导用户的注意力完成预先设定的操作,良好的对比度效果营造温和的视觉氛围。相信在当前交互界面日益接近桌面的Web应用中,Lightbox 也将会成为Ajax的设计模式之一。

此时我发现就其功能和效果而言,"Lightbox"翻译成"灯笼"似乎也没那么牵强附会了。

来源:https://www.tulaoshi.com/n/20160219/1622678.html

延伸阅读
一、引子 俗话说:世上难买后悔药。所以凡事讲究个“三思而后行”,但总常见有人做“痛心疾首”状:当初我要是……。假如真的有《大话西游》中能时光倒流的“月光宝盒”,那这世上也许会少一些伤感与后悔——当然这只能是痴人说梦了。 但是在我们手指下的程序世界里,却有的后悔药买。今天我们要讲的备忘录模式便是程...
标签: Web开发
load()方法是jQuery中最为简单和常用的Ajax方法,能载入远程HTML代码并插入到DOM中。它的语法结构为: load( url [, data][, callback] ) load()方法参数解释见下表: 参数名称 类 型 说 明 urlString请求HTML页面的URL地址data(可选)Object发送至服务器的key/value数据callback(可选)Function请求完成时的回调函数,无论...
本系列文章将向大家介绍一下 C#的设计模式 ,此为第十一篇文章,相信对大家会有所帮助的。废话不多说,继续来看。 意图 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得用户对单个对象和组合对象的使用具有一致性。 场景 我们知道,一个网络游戏通常会有多个游戏大区。每一个游戏大区会有...
本系列文章将向大家介绍一下 C#的设计模式 ,此为第十三篇文章,相信对大家会有所帮助的。废话不多说,继续来看。 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 场景 在设计网络游戏的武器系统时,开始并没有考虑到武器的强化和磨损。之后,策划人员说希望给游...
本系列文章将向大家介绍一下 C#的设计模式 ,此为第十篇文章,相信对大家会有所帮助的。废话不多说,继续来看。 意图 运用共享技术有效地支持大量细粒度的对象。 场景 在比较底层的系统或者框架级的软件系统中,通常存在大量细粒度的对象。即使细力度的对象,如果使用的数量级很高的话会占用很多资源。比如,游戏...

经验教程

164

收藏

58
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部