JavaScript實(shí)現(xiàn)彈出窗口效果
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)彈出窗口的具體代碼,供大家參考,具體內(nèi)容如下
思路
1、總體使用兩個(gè)div,一個(gè)作為底層展示,一個(gè)做為彈出窗口;
2、兩個(gè)窗口獨(dú)立進(jìn)行CSS設(shè)計(jì),通過(guò)display屬性進(jìn)行設(shè)置現(xiàn)實(shí)與隱藏,此處建議使用display屬性而不是visibility屬性,visibility:hidden可以隱藏某個(gè)元素,但隱藏的元素仍需占用與未隱藏之前一樣的空間,影響布局;
3、在js內(nèi)設(shè)計(jì)兩個(gè)onclick事件,分別指定函數(shù),分別為開(kāi)啟彈窗和關(guān)閉彈窗。
一、設(shè)置兩個(gè)div
<html> <title>彈出窗口</title> <head> <meta charset="UTF-8"> </head> <body> // 底層div <div id="popLayer"> </div> // 彈出層div <div id="popDiv"> </div> </body> </html>
二、對(duì)兩個(gè)div進(jìn)行獨(dú)立CSS設(shè)置,彈出窗口display設(shè)為none
<html> <title>彈出窗口</title> <head> <meta charset="UTF-8"> <style type="text/css"> body{ background-color: cyan; } #popDiv{ display: none; background-color: crimson; z-index: 11; width: 600px; height: 600px; position:fixed; top:0; right:0; left:0; bottom:0; margin:auto; } </style> </head> <body> // 底層div <div id="popLayer"> <button onclick="">彈窗</button> </div> // 彈出層div <div id="popDiv"> <div class="close"> // 關(guān)閉按鈕超鏈接 <a href="" onclick="">關(guān)閉</a> </div> <p>此處為彈出窗口</p> </div> </body> </html>
三、定義并設(shè)置彈出按鈕和關(guān)閉窗口函數(shù)
<script type="text/javascript"> function popDiv(){ // 獲取div元素 var popBox = document.getElementById("popDiv"); var popLayer = document.getElementById("popLayer"); // 控制兩個(gè)div的顯示與隱藏 popBox.style.display = "block"; popLayer.style.display = "block"; } function closePop(){ // 獲取彈出窗口元素 let popDiv = document.getElementById("popDiv"); popDiv.style.display = "none"; } </script>
四、將函數(shù)設(shè)置到onclick事件中
<button onclick="popDiv();">彈窗</button> <a href="javascript:void(0)" onclick="closePop()">關(guān)閉</a>
五、設(shè)置關(guān)閉鏈接CSS和pop界面的其余CSS
<style type="text/css"> /* 關(guān)閉鏈接樣式 */ #popDiv .close a { text-decoration: none; color: #2D2C3B; } /* 彈出界面的關(guān)閉鏈接 */ #popDiv .close{ text-align: right; margin-right: 5px; background-color: #F8F8F8; } #popDiv p{ text-align: center; font-size: 25px; font-weight: bold; } </style>
六、整體代碼
<html> <title>彈出窗口</title> <head> <meta charset="UTF-8"> <script type="text/javascript"> function popDiv(){ // 獲取div元素 var popBox = document.getElementById("popDiv"); var popLayer = document.getElementById("popLayer"); // 控制兩個(gè)div的顯示與隱藏 popBox.style.display = "block"; popLayer.style.display = "block"; } function closePop(){ // 獲取彈出窗口元素 let popDiv = document.getElementById("popDiv"); popDiv.style.display = "none"; } </script> <style type="text/css"> body{ background-color: cyan; } #popDiv{ display: none; background-color: crimson; z-index: 11; width: 600px; height: 600px; position:fixed; top:0; right:0; left:0; bottom:0; margin:auto; } /* 關(guān)閉按鈕樣式 */ #popDiv .close a { text-decoration: none; color: #2D2C3B; } /* 彈出界面的關(guān)閉按鈕 */ #popDiv .close{ text-align: right; margin-right: 5px; background-color: #F8F8F8; } #popDiv p{ text-align: center; font-size: 25px; font-weight: bold; } </style> </head> <body> <div id="popLayer"> <button onclick="popDiv();">彈窗</button> </div> <div id="popDiv"> <div class="close"> <a href="javascript:void(0)" onclick="closePop()">關(guān)閉</a> </div> <p>此處為彈出窗口</p> </div> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript ES6 Template String模板字符串使用方法
這篇文章主要介紹了javascript ES6 模板字符串(Template String)是增強(qiáng)版的字符串,用反引號(hào)(`)標(biāo)識(shí),它可以當(dāng)作普通字符串使用,也可以用來(lái)定義多行字符串,或者在字符串中嵌入變量,需要的朋友可以參考下2023-06-06js HTML5 Ajax實(shí)現(xiàn)文件上傳進(jìn)度條功能
這篇文章主要介紹了javascript實(shí)現(xiàn)文件上傳進(jìn)度條功能的相關(guān)資料啊,感興趣的朋友可以參考一下2016-02-02原生JavaScript實(shí)現(xiàn)remove()和recover()功能示例
這篇文章主要介紹了原生JavaScript實(shí)現(xiàn)remove()和recover()功能,結(jié)合實(shí)例形式分析了javascript實(shí)現(xiàn)類似jQueryremove()和recover()功能的自定義函數(shù),需要的朋友可以參考下2018-07-07javascript實(shí)現(xiàn)網(wǎng)頁(yè)背景煙花效果的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)網(wǎng)頁(yè)背景煙花效果的方法,涉及javascript數(shù)學(xué)運(yùn)算及頁(yè)面元素動(dòng)態(tài)操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

15個(gè)簡(jiǎn)單的JS編碼標(biāo)準(zhǔn)讓你的代碼更整潔(小結(jié))

Javascript計(jì)算二維數(shù)組重復(fù)值示例代碼

JS實(shí)現(xiàn)拖拽元素時(shí)與另一元素碰撞檢測(cè)