使用JavaScript實現(xiàn)彈出層效果的簡單實例
聲明
閱讀本文需要有一定的HTML、CSS和JavaScript基礎
設計
實現(xiàn)彈出層效果的思路非常簡單:將待顯示的內容先隱藏,在觸發(fā)某種條件后(如點擊按鈕),將原本隱藏的內容顯示出來。
實現(xiàn)
<!DOCTYPE html>
<html>
<head>
<title>Window對象</title>
<meta charset="utf-8">
</head>
<body>
<a >百度一下</a>
<button type="button" id="open">打開彈出層</button>
<div style="display: none;background: lightblue;border:1px solid green;" id="toast"> <!-- 設置display屬性為none以隱藏內容 -->
<p>這里是彈出層內容</p>
<button type="button" id="close">關閉彈出層</button>
</div>
<script type="text/javascript">
var toast = document.getElementById("toast");
document.getElementById("open").onclick = function(e){ <!-- 定義點擊事件顯示隱藏內容 -->
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){ <!-- 將顯示的內容再次隱藏 -->
toast.style.display = "none";
}
</script>
</body>
</html>
顯示效果如下:

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

總結
上述內容只是簡單實現(xiàn)了彈出層效果,但是通過添加更多的代碼也可以在此基礎上實現(xiàn)更復雜的功能。
以上這篇使用JavaScript實現(xiàn)彈出層效果的簡單實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
基于Bootstrap下拉框插件bootstrap-select使用方法詳解
這篇文章主要為大家詳細介紹了基于Bootstrap下拉框插件bootstrap-select的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08
基于JavaScript實現(xiàn)數(shù)值型坐標軸刻度計算算法(echarts的y軸刻度計算)
這篇文章主要介紹了基于JavaScript實現(xiàn)數(shù)值型坐標軸刻度計算算法(echarts的y軸刻度計算),文章圍繞主題展開詳細的內容介紹,感興趣的朋友可以參考與一下2022-06-06
基于layer.js實現(xiàn)收貨地址彈框選擇然后返回相應的地址信息
這篇文章主要介紹了基于layer.js實現(xiàn)收貨地址彈框選擇然后返回相應的地址信息,需要的朋友可以參考下2017-05-05
JavaScript如何使用Promise實現(xiàn)分批處理接口請求
當我們在開發(fā)時遇到需要同時發(fā)起百條接口請求怎么辦呢,本文主要來和大家介紹一下JavaScript如何使用Promise實現(xiàn)分批處理接口請求,需要的可以參考下2024-03-03

