本文详细介绍如何使用JavaScript和CSS实现点击按钮后弹出带有半透明遮罩层的视频播放窗口。通过绝对定位控制元素层级,利用display属性控制显隐,并结合事件监听实现视频的加载与关闭功能,适用于需要引导用户观看视频的场景。
JavaScript实现点击按钮弹出带遮罩层的视频播放窗口
本文通过具体实例展示如何利用JavaScript实现点击按钮后弹出带有遮罩层的视频播放效果,涉及CSS样式设置与JavaScript逻辑控制,供读者参考学习。
最终效果为:点击红色按钮后,页面弹出视频播放窗口,并伴随半透明遮罩层覆盖背景。

点击窗口右侧的黄色关闭区域,即可关闭视频播放窗口,使页面恢复初始状态。

HTML结构与CSS样式设置
页面HTML结构主要包含一个用于触发显示的链接元素,该元素设置了唯一的id值以便后续脚本调用。
<div class="main">
<a href="javascript:;" class="video" id="video"></a>
</div>
相关CSS代码定义了视频控制区域的样式,其中.video-btn类包含了视频显示区域以及右侧的黄色关闭按钮。
id为shadow的元素用于定义遮罩层。通过为各个关键元素设置id,便于JavaScript脚本直接获取并操作对应DOM节点。
<div class="video-btn" id="video-btn">
<div class="video-area" id="video-area"></div>
<a class="video-shut" id="video-shut">x</a>
</div>
<div id="shadow"></div>
接下来分析相关的CSS样式设置。
首先对视频按钮区域进行样式定义。
.video-btn{
position: absolute;
width:600px;
height: 300px;
background:black;
top:50%;
left: 50%;
margin-top: -150px;
margin-left:-300px;
display: none;
z-index: 101;
}
.video-area{
float:left;
width:500px;
height: 300px;
background:red;
}
.video-shut{
height:100px;
width:100px;
font-size:40px;
color:pink;
float:left;
text-align: center;
/*line-height: 50px;*/
background: yellow;
display: block;
padding-top:30px;
}
随后对遮罩层的CSS属性进行配置。
#shadow{
position: absolute;
opacity: 0.5;
filter:alpha(opacity=50);
bottom:0;
left: 0;
right: 0;
top: 0;
background:black;
z-index: 100;
display: none;
}
关键点1:必须将视频控制div和遮罩层div设置为绝对定位(position: absolute),使其脱离标准文档流。
关键点2:遮罩层需将bottom、left、right、top均设置为0,以确保其能够完全覆盖整个屏幕区域。
关键点3:初始状态下,这两个div的display属性必须设置为none,避免页面加载时直接显示元素影响视觉效果。
关键点4:需合理设置z-index属性,确保视频显示div和关闭按钮的层级高于遮罩层,否则用户将无法点击交互元素。
JavaScript交互逻辑实现
接下来编写JavaScript代码:首先通过id获取各个DOM元素并赋值给变量,随后为关闭按钮绑定点击事件。
点击触发事件1:当用户点击触发按钮时,将视频所在div和遮罩层div的display属性设置为block以显示它们。同时,向视频容器内插入土豆网的视频嵌入代码,该链接为分享链接。
点击触发事件2:当用户点击黄色关闭按钮时,将视频所在div和遮罩层div的display属性设置为none,从而隐藏这两个元素。
<script>
var obtn=document.getElementById('video');
var ovideo=document.getElementById('video-btn');
var oatn=document.getElementById('video-area');
var oshut=document.getElementById('video-shut');
var oshadow=document.getElementById('shadow');
obtn.onclick=function () {
ovideo.style.display='block';
oshadow.style.display='block';
oatn.innerHTML='<embed src="http://www.tudou.com/v/Bs_lZPxcoRs/&rpid=818231113&autoPlay=true&resourceId=818231113_04_05_99/v.swf" allowFullScreen="true" quality="high" width="500" height="300" align="middle" allowScriptAccess="always" flashvars ="isAutoPlay=true" type="application/x-shockwave-flash"></embed>';
}
oshut.onclick= function () {
ovideo.style.display='none';
oshadow.style.display='none';
}
</script>
以上就是本文的全部内容,希望上述实现方法能对读者的学习有所帮助。