今天團隊同事接到一個需求,需求是這樣的,點擊頁面按鈕彈出紅包彈窗,顯示黑色遮罩層,點擊遮罩層背景和彈窗關(guān)閉按鈕要關(guān)閉彈窗,于是我就做了一個Demo出來,方便以后下次自己再遇到這種需求,上代碼。
html代碼
頁面上只有一個展示的按鈕,一個ID為bg的div作為灰色背景遮罩層使用,ID為popup的div作為紅包彈窗,ID為close的div作為關(guān)閉按鈕。
<body>
<div class="btn" id="btn">展示</div>
<div class="bg" id="bg">
<div class="popup" id="popup">
<div class="close" id="close">X</div>
</div>
</div>
</body>
CSS代碼
css代碼里面沒什么技術(shù)難點,唯一要注意的是要給灰色背景的遮罩層一個絕對定位,top和lefe都為0就好了
body {
position: relative;
}
.btn {
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
margin:20px auto 0;
border: 1px solid #333;
border-radius: 10px;
}
.bg {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, .6);
display: none;
}
.popup {
width: 260px;
height: 320px;
background: red;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 15px;
}
.popup .close {
width: 30px;
height: 30px;
line-height: 30px;
text-align: center;
position: absolute;
top: -40px;
right: 0px;
border: 1px solid #999;
border-radius: 50%;
color: #999;
}
JS代碼
var btn = document.getElementById('btn');
var bg = document.getElementById('bg');
var popup = document.getElementById('popup');
var closeBtn = document.getElementById('close');
// 點擊展示按鈕顯示彈窗
btn.addEventListener('click', ()=> {
bg.style.display = 'block';
});
// 點擊陰影遮罩層關(guān)閉彈窗
bg.addEventListener('click', (e)=> {
bg.style.display = 'none'
});
// 阻止冒泡事件,點擊彈窗不會執(zhí)行父元素的點擊事件
popup.addEventListener('click', (e)=> {
e.stopPropagation();
});
// 點擊關(guān)閉符號關(guān)閉彈窗
closeBtn.addEventListener('click', (e)=> {
e.stopPropagation();
bg.style.display = 'none'
})
到此這篇關(guān)于Html5頁面點擊遮罩層背景關(guān)閉遮罩層的文章就介紹到這了,更多相關(guān)Html5關(guān)閉遮罩層內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!