使用jQuery制作遮罩層彈出效果的極簡(jiǎn)實(shí)例分享
客戶的網(wǎng)站上突然需要一個(gè)遮罩彈窗效果,也可以稱作暗箱之類的,具體效果就是網(wǎng)頁(yè)中背景變成半透明,然后在屏幕中間出現(xiàn)一個(gè)菜單之類的東西。這種效果在網(wǎng)上很常見(jiàn),例如:QQ空間瀏覽相冊(cè)等。這種效果的好處就是,可以讓用戶聚焦到彈出的菜單中。
神說(shuō),有代碼的文章,應(yīng)該有個(gè) Demo ,于是就有了Demo。
HTML 結(jié)構(gòu)
首先先來(lái)分析一下這個(gè)過(guò)程:觸發(fā)某個(gè)事件(例如點(diǎn)擊按鈕),然后出現(xiàn)一個(gè)背景遮罩上面還有一個(gè)內(nèi)容層。觸發(fā)的按鈕,我在這里用 div 來(lái)代替,并且使用 click 點(diǎn)擊事件來(lái)演示。那么我們的 HTML 結(jié)構(gòu)就很明確了。
<div class="click">點(diǎn)擊這里</div> <div class="click1">效果增強(qiáng)版的</div> <div class="bg"></div> <div class="content">這里是正文內(nèi)容</div>
CSS 代碼
對(duì)于遮罩效果的 CSS 代碼是最關(guān)鍵的。遮罩用到了兩個(gè) div ,一個(gè)作為背景,要覆蓋整個(gè)網(wǎng)頁(yè),另一個(gè)是內(nèi)容顯示層,通常要居中處理。
.bg{display:none;position:fixed;width:100%;height:100%;background:#000;z-index:2;top:0;left:0;opacity:0.7;}
.content{display:none;width:500px;height:300px;position:fixed;top:50%;margin-top:-150px;background:#fff;z-index:3;left:50%;margin-left:-250px;}
簡(jiǎn)單解釋一下,首先要隱藏起來(lái),之后用 jQuery 觸發(fā)顯示。之后指定 position 的屬性為 fixed,因?yàn)檫@樣,才能激活 top 、left 、bottom 、right 、z-index這些屬性,同時(shí)可以設(shè)置 width 、height 為 100% 來(lái)實(shí)現(xiàn)覆蓋整個(gè)網(wǎng)頁(yè)。通常情況下,一般用 absolute 屬性值來(lái)實(shí)現(xiàn)這種效果,因?yàn)樗募嫒菪愿?。但是在?shí)際應(yīng)用當(dāng)中,當(dāng)頁(yè)面很長(zhǎng),往下滾動(dòng)的時(shí)候,使用 absolute 遮罩層也會(huì)跟隨滾動(dòng)。對(duì)于內(nèi)容層來(lái)說(shuō),比較簡(jiǎn)單,指定寬度和高度用負(fù)邊距來(lái)使其居中顯示。
特別要注意一點(diǎn),背景層的半透明使用的是 opacity 屬性,因?yàn)槭褂眠@個(gè)屬性可以更好的用 jQuery 來(lái)控制。但是 fixed 、opacity 都是早期 IE 瀏覽器不支持的。
jQuery 代碼
分析一下遮罩的交互操作,無(wú)非就是點(diǎn)擊彈出,然后點(diǎn)擊一下遮罩,消失。那么就直接對(duì) CSS 進(jìn)行操作即可。
$(function(){
$(‘.click').click(function(){
$(‘.bg').css({‘display':'block'});
$(‘.content').css({‘display':'block'});
});
$(‘.bg').click(function(){
$(‘.bg').css({‘display':'none'});
$(‘.content').css({‘display':'none'});
});
});
這里直接使用 CSS 方法,當(dāng)點(diǎn)擊的時(shí)候改變 display 屬性,此外還有很多實(shí)現(xiàn)方法,不再贅述。完成這些,當(dāng)我們點(diǎn)擊“點(diǎn)擊這里”之后,就可以看到效果了。
更多技巧和方法
更平緩的顯示:
點(diǎn)擊之后,突然出現(xiàn)并不是一個(gè)好方法。所以我又增加了一個(gè)按鈕,點(diǎn)擊之后通過(guò) fadeIn、fadeOut 方法來(lái)控制漸隱。
$(‘.click1').click(function(){
$(‘.bg').fadeIn(200);
$(‘.content').fadeIn(400);
});
$(‘.bg').click(function(){
$(‘.bg').fadeOut(800);
$(‘.content').fadeOut(800);
});
這樣簡(jiǎn)單的方法,就增強(qiáng)了用戶體驗(yàn)。當(dāng)然,還有一些更高級(jí)的效果可以實(shí)現(xiàn)。
- jQuery實(shí)現(xiàn)彈出帶遮罩層的居中浮動(dòng)窗口效果
- jQuery實(shí)現(xiàn)右鍵菜單、遮罩等效果代碼
- jQuery彈出遮罩層效果完整示例
- jQuery操作dom實(shí)現(xiàn)彈出頁(yè)面遮罩層(web端和移動(dòng)端阻止遮罩層的滑動(dòng))
- Jquery實(shí)現(xiàn)遮罩層的簡(jiǎn)單實(shí)例(就是彈出DIV周圍都灰色不能操作)
- jQuery實(shí)現(xiàn)按鈕點(diǎn)擊遮罩加載及處理完后恢復(fù)的效果
- jquery實(shí)現(xiàn)簡(jiǎn)單的遮罩層
- Jquery實(shí)現(xiàn)自定義彈窗示例
- jquery制作彈窗提示窗口代碼分享
- jQuery實(shí)現(xiàn)簡(jiǎn)單彈窗遮罩效果
相關(guān)文章
基于jQuery實(shí)現(xiàn)的單行公告活動(dòng)輪播效果
本文通過(guò)實(shí)例代碼給大家介紹了基于jQuery實(shí)現(xiàn)的單行公告活動(dòng)輪播效果,非常不錯(cuò),代碼簡(jiǎn)單易懂,具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-08-08
加載列表時(shí)jquery獲取ul中第一個(gè)li的屬性
通過(guò)jquery獲取ul中第一個(gè)li的屬性,當(dāng)加載列表時(shí),默認(rèn)希望選中第一條,下面是具體的實(shí)現(xiàn)代碼2014-11-11
Jquery調(diào)用webService遠(yuǎn)程訪問(wèn)出錯(cuò)的解決方法
原來(lái)web.config里面默認(rèn)Post設(shè)置是不允許遠(yuǎn)程調(diào)用webservice,需要配置一下就可以了2010-05-05
jquery Ajax 實(shí)現(xiàn)加載數(shù)據(jù)前動(dòng)畫(huà)效果的示例代碼
本篇文章主要是對(duì)jquery Ajax實(shí)現(xiàn)加載數(shù)據(jù)前動(dòng)畫(huà)效果的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02
jQuery的ajax和遍歷數(shù)組json實(shí)例代碼
下面小編就為大家?guī)?lái)一篇jQuery的ajax和遍歷數(shù)組json實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
jQuery ajax dataType值為text json探索分享
ajax dataType值為text json的使用是怎么樣的,在本文將為大家想你想介紹下,感興趣的朋友不要錯(cuò)過(guò)2013-09-09
jQuery開(kāi)發(fā)者都需要知道的5個(gè)小技巧
JQuery是個(gè)不錯(cuò)的框架,以下總結(jié)了5個(gè)每個(gè)網(wǎng)站開(kāi)發(fā)者都應(yīng)該知道的小技巧,都是一些非常不錯(cuò)的,經(jīng)常能用得到的。2010-01-01
超輕量級(jí)的基于jquery的三級(jí)展開(kāi)列表
今天自己寫(xiě)了個(gè)輕量級(jí)的三級(jí)展開(kāi)菜單,如果需要可以在增加一級(jí)別,一般公司的項(xiàng)目三級(jí)都足夠了。2011-04-04

