DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> lightBox 簡易的全屏透明遮罩解決方法
lightBox 簡易的全屏透明遮罩解決方法
編輯:關於JavaScript     
步入正題:
現在全屏的半透明遮罩層在web2.0網站應用非常廣泛了,絕大多數遮罩是通過計算頁面大小,然後覆蓋一個與頁面同等大小的層實現,如騰訊qzone, wordpress後台。這種方式本來無可非議,但是在頁面很長的時候在IE8下會失效(國外資料的解釋是與機器顯卡相關),有些完美情節的同學遇到這個問題後就抓破了頭,無奈之下甚至想讓IE8強制使用IE7的方式解析他的作品。其實我們有一個更好的方法,咱們用CSS去解決它!
還記得“position:fixed”嗎?它是css2的一個新增的屬性,他可以讓一個元素靜止在頁面上,拖動滾動條也不會動,如Qzone頂部固定的導航欄就是這樣實現的。同樣我們也可以用一個100%高寬的層覆蓋浏覽器視口,這樣就可以實現全屏遮罩了。不用再計算頁面的大小,調整浏覽器大小的時候也不要去動態修改尺寸了。

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
可是有一個頭疼的問題,IE6不支持“position:fixed”,咱們只能通過js動態的修改它的TOP值以模擬靜止定位,拖動滾動條的時候遮罩成肯定會抖動,因為每改變一次IE會重新渲染一次。但是微軟卻給我們提供了一個非常有趣的特性,如果給html或者body標簽設置一個靜止定位的背景圖片,層在拖動滾動條的時候就不會抖動了,幾乎完美的模擬了“position:fixed”。我在實際項目中發現這個特性他還能觸發其他的特異功能,以後再說明。
為了省事,咱們針對IE6用萬惡expression在CSS中寫點腳本,拖動滾動條的時候重新定位我們的遮罩層。傳說中expression是非常耗性能的,可是咱們的expression幾乎沒有損耗,有興趣的同學可以深入研究下expression。

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
好了,兼容IE6這個大頭娃娃後,咱們的鎖屏遮罩已經通殺主流浏覽器了,但是呢用js寫效果的同學們總是非常的蛋疼,總想折騰點什麼來,咱們就再添加一點腳本,讓鎖屏的時候後可以中斷用戶操作,把滾動條、滾輪、tab鍵、全選、刷新、右鍵統統禁止掉,模擬真正的‘鎖屏':

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved