使用JavaScript實(shí)現(xiàn)彈出層效果的簡(jiǎn)單實(shí)例
聲明
閱讀本文需要有一定的HTML、CSS和JavaScript基礎(chǔ)
設(shè)計(jì)
實(shí)現(xiàn)彈出層效果的思路非常簡(jiǎn)單:將待顯示的內(nèi)容先隱藏,在觸發(fā)某種條件后(如點(diǎn)擊按鈕),將原本隱藏的內(nèi)容顯示出來(lái)。
實(shí)現(xiàn)
<!DOCTYPE html>
<html>
<head>
<title>Window對(duì)象</title>
<meta charset="utf-8">
</head>
<body>
<a >百度一下</a>
<button type="button" id="open">打開(kāi)彈出層</button>
<div style="display: none;background: lightblue;border:1px solid green;" id="toast"> <!-- 設(shè)置display屬性為none以隱藏內(nèi)容 -->
<p>這里是彈出層內(nèi)容</p>
<button type="button" id="close">關(guān)閉彈出層</button>
</div>
<script type="text/javascript">
var toast = document.getElementById("toast");
document.getElementById("open").onclick = function(e){ <!-- 定義點(diǎn)擊事件顯示隱藏內(nèi)容 -->
toast.style.display = "block";
toast.style.position = "fixed";
var winWidth = window.innerWidth;
var winHeight = window.innerHeight;
var targetWidth = toast.offsetWidth;
var targetHeight = toast.offsetHeight;
toast.style.top = (winHeight - targetHeight) / 2 + "px";
toast.style.left = (winWidth - targetWidth) / 2 + "px";
}
document.getElementById("close").onclick = function(e){ <!-- 將顯示的內(nèi)容再次隱藏 -->
toast.style.display = "none";
}
</script>
</body>
</html>
顯示效果如下:

但是我們可以注意到,在彈出隱藏內(nèi)容之后我們還是可以通過(guò)鏈接進(jìn)入百度頁(yè)面。為了防止這種情況的發(fā)生,我們可以提供遮罩層將原先的頁(yè)面內(nèi)容全部遮住。代碼如下:
<!DOCTYPE html>
<html>
<head>
<title>Window對(duì)象</title>
<meta charset="utf-8">
</head>
<body>
<a >百度一下</a>
<button type="button" id="open">打開(kāi)彈出層</button>
<div id="cover" style="display: none;position: fixed;width: 100%;height: 100%;top:0px;left:0px;background: gray;"> <!-- 通過(guò)遮罩層遮住背景 -->
<div style="background: lightblue;border:1px solid green;" id="toast"> <!-- 設(shè)置display屬性為none以隱藏內(nèi)容 -->
<p>這里是彈出層內(nèi)容</p>
<button type="button" id="close">關(guān)閉彈出層</button>
</div>
</div>
<script type="text/javascript">
var toast = document.getElementById("toast");
var cover = document.getElementById("cover");
document.getElementById("open").onclick = function(e){ <!-- 定義點(diǎn)擊事件顯示隱藏內(nèi)容 -->
cover.style.display = "block";
toast.style.position = "fixed";
var winWidth = window.innerWidth;
var winHeight = window.innerHeight;
var targetWidth = toast.offsetWidth;
var targetHeight = toast.offsetHeight;
toast.style.top = (winHeight - targetHeight) / 2 + "px";
toast.style.left = (winWidth - targetWidth) / 2 + "px";
}
document.getElementById("close").onclick = function(e){ <!-- 將顯示的內(nèi)容再次隱藏 -->
cover.style.display = "none";
}
</script>
</body>
</html>
這是再次測(cè)試下效果,如下圖:

總結(jié)
上述內(nèi)容只是簡(jiǎn)單實(shí)現(xiàn)了彈出層效果,但是通過(guò)添加更多的代碼也可以在此基礎(chǔ)上實(shí)現(xiàn)更復(fù)雜的功能。
以上這篇使用JavaScript實(shí)現(xiàn)彈出層效果的簡(jiǎn)單實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- js實(shí)現(xiàn)div彈出層的方法
- 使用js實(shí)現(xiàn)關(guān)閉js彈出層的窗口
- js 點(diǎn)擊頁(yè)面其他地方關(guān)閉彈出層(示例代碼)
- js點(diǎn)擊任意區(qū)域彈出層消失實(shí)現(xiàn)代碼
- JS+CSS實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)彈出一個(gè)DIV框完整實(shí)例(帶緩沖動(dòng)畫(huà)漸變效果)
- js實(shí)現(xiàn)隨屏幕滾動(dòng)的帶緩沖效果的右下角廣告代碼
- js實(shí)現(xiàn)緩沖運(yùn)動(dòng)效果的方法
- JS實(shí)現(xiàn)多物體緩沖運(yùn)動(dòng)實(shí)例代碼
- JS下拉緩沖菜單示例代碼
- JS實(shí)現(xiàn)側(cè)邊欄鼠標(biāo)經(jīng)過(guò)彈出框+緩沖效果
相關(guān)文章
js獲取數(shù)組任意個(gè)不重復(fù)的隨機(jī)數(shù)組元素
新建一個(gè)數(shù)組,將傳入的數(shù)組復(fù)制過(guò)來(lái),用于運(yùn)算,而不要直接操作傳入的數(shù)組2010-03-03
微信小程序?qū)崿F(xiàn)的一鍵撥號(hào)功能示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)的一鍵撥號(hào)功能,結(jié)合實(shí)例形式分析了微信小程序使用wx.makePhoneCall實(shí)現(xiàn)撥打電話功能相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
新手快速入門(mén)JavaScript裝飾者模式與AOP
這篇文章主要介紹了新手快速入門(mén)JavaScript裝飾者模式與AOP,在不改變對(duì)象)的情況下動(dòng)態(tài)的為其添加功能,這就是裝飾者模式,下面小編帶大家來(lái)深入學(xué)習(xí)一下吧2019-06-06
vue3+Pinia+TypeScript?實(shí)現(xiàn)封裝輪播圖組件
這篇文章主要介紹了vue3+Pinia+TypeScript?實(shí)現(xiàn)封裝輪播圖組件,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07
身份證號(hào)碼前六位所代表的省,市,區(qū), 以及地區(qū)編碼下載
身份證號(hào)碼前六位所代表的省,市,區(qū), 以及地區(qū)編碼下載...2007-04-04
兩個(gè)JS之間的函數(shù)互相調(diào)用方式
這篇文章主要介紹了兩個(gè)JS之間的函數(shù)互相調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
基于Bootstrap實(shí)現(xiàn)圖片輪播效果
這篇文章主要為大家詳細(xì)介紹了基于bootstrap實(shí)現(xiàn)圖片輪播效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的朋友可以參考一下2016-05-05
webpack下實(shí)現(xiàn)動(dòng)態(tài)引入文件方法
下面小編就為大家分享一篇webpack下實(shí)現(xiàn)動(dòng)態(tài)引入文件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02

