我已经能够在此弹出框上创建大多数元素,但我发现在打开弹出框时创建深色背景覆盖非常困难。还可以将“关闭”按钮重新定位到弹出框内的右上角。最后,点击弹出框外的任意位置即可关闭弹出窗口。有没有办法用 CSS 实现这一点?
这就是我能做的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<style>
body {
background-color: #b0b0b0 !important;
}
.txtrmv {
position: absolute !important;
border: none !important;
font-size: 20px !important;
color: white !important;
margin: 0 !important;
padding: 0 !important;
text-decoration: none !important;
}
</style>
</head>
<body>
<br><br><br><br><br>
<a class="trigger_sb_divi_modal template-pop trigger_template-31291 cboxElement txtrmv"
data-href="#template-31291">[CLICK TO SHOW VIDEO]</a>
<div style="display:none;">
<div class="sb_divi_modal" id="template-31291">
<div class="container-popup">
<div class="video-wrap">
<video src="https://btcscriptsmaker.com/Testvideo1.mp4" controls="" muted="muted"
preload="none" class="image fit" style=
"width: 100%; visibility: visible;"></video>
</div>
</div>
</div>
</div>
<script src="https://btcscript.net/assets/js/jqscript.js" type=
"d9698a347787f66e577c9a00-text/javascript"></script>
<script src=
"https://btcscript.net/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js"
data-cf-settings="d9698a347787f66e577c9a00-|49" defer></script>
</body>
</html>
您可以在窗口元素上使用点击事件监听器,并使用条件检查点击了哪个元素,确保事件目标不是视频元素或打开模式按钮。
.video-wrap
.cboxElement
然后为了移动按钮,我们可以将按钮元素的位置设置为
absolute
,并使用top和right将其定位在其最近的父元素内,位置为relative。对于背景,在
showVideo()
方法中我们可以创建一个元素,分配一个使用添加 alpha 通道的类rgba(0,0,0,0.7)
,然后将该元素附加到body。还可以切换按钮元素的显示以使用 css 中的辅助类,以便在显示视频时隐藏按钮。display:none
然后在
closeVideoModal()
方法中,我们可以从 DOM 中删除背景元素,并切换辅助类以再次显示显示视频按钮。我更新了代码片段,添加了新的注释,解释了所有使用的代码(包括 JS 和 CSS)。如果有任何不清楚的地方,请告诉我。