使用jQuery制作遮罩層彈出效果的極簡實(shí)例分享
來源:易賢網(wǎng) 閱讀:826 次 日期:2016-07-01 11:39:20
溫馨提示:易賢網(wǎng)小編為您整理了“使用jQuery制作遮罩層彈出效果的極簡實(shí)例分享”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了使用jQuery制作遮罩層彈出效果的極簡實(shí)例分享,效果中背景為半透冥且不可操作,在制作頁面上傳功能等場景下十分實(shí)用,需要的朋友可以參考下

客戶的網(wǎng)站上突然需要一個(gè)遮罩彈窗效果,也可以稱作暗箱之類的,具體效果就是網(wǎng)頁中背景變成半透明,然后在屏幕中間出現(xiàn)一個(gè)菜單之類的東西。這種效果在網(wǎng)上很常見,例如:QQ空間瀏覽相冊等。這種效果的好處就是,可以讓用戶聚焦到彈出的菜單中。

神說,有代碼的文章,應(yīng)該有個(gè) Demo ,于是就有了Demo。

HTML 結(jié)構(gòu)

首先先來分析一下這個(gè)過程:觸發(fā)某個(gè)事件(例如點(diǎn)擊按鈕),然后出現(xiàn)一個(gè)背景遮罩上面還有一個(gè)內(nèi)容層。觸發(fā)的按鈕,我在這里用 div 來代替,并且使用 click 點(diǎn)擊事件來演示。那么我們的 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 代碼

對于遮罩效果的 CSS 代碼是最關(guān)鍵的。遮罩用到了兩個(gè) div ,一個(gè)作為背景,要覆蓋整個(gè)網(wǎng)頁,另一個(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;}

簡單解釋一下,首先要隱藏起來,之后用 jQuery 觸發(fā)顯示。之后指定 position 的屬性為 fixed,因?yàn)檫@樣,才能激活 top 、left 、bottom 、right 、z-index這些屬性,同時(shí)可以設(shè)置 width 、height 為 100% 來實(shí)現(xiàn)覆蓋整個(gè)網(wǎng)頁。通常情況下,一般用 absolute 屬性值來實(shí)現(xiàn)這種效果,因?yàn)樗募嫒菪愿?。但是在?shí)際應(yīng)用當(dāng)中,當(dāng)頁面很長,往下滾動(dòng)的時(shí)候,使用 absolute 遮罩層也會(huì)跟隨滾動(dòng)。對于內(nèi)容層來說,比較簡單,指定寬度和高度用負(fù)邊距來使其居中顯示。

特別要注意一點(diǎn),背景層的半透明使用的是 opacity 屬性,因?yàn)槭褂眠@個(gè)屬性可以更好的用 jQuery 來控制。但是 fixed 、opacity 都是早期 IE 瀏覽器不支持的。

jQuery 代碼

分析一下遮罩的交互操作,無非就是點(diǎn)擊彈出,然后點(diǎn)擊一下遮罩,消失。那么就直接對 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)擊之后通過 fadeIn、fadeOut 方法來控制漸隱。

$(‘.click1').click(function(){

$(‘.bg').fadeIn(200);

$(‘.content').fadeIn(400);

});

$(‘.bg').click(function(){

$(‘.bg').fadeOut(800);

$(‘.content').fadeOut(800);

});

這樣簡單的方法,就增強(qiáng)了用戶體驗(yàn)。當(dāng)然,還有一些更高級的效果可以實(shí)現(xiàn)。

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:使用jQuery制作遮罩層彈出效果的極簡實(shí)例分享
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)