JavaScript实现点击按钮弹出带遮罩层的视频播放窗口

作者:流萤

时间:2026-10-29

浏览:172

本文详细介绍如何使用JavaScript和CSS实现点击按钮后弹出带有半透明遮罩层的视频播放窗口。通过绝对定位控制元素层级,利用display属性控制显隐,并结合事件监听实现视频的加载与关闭功能,适用于需要引导用户观看视频的场景。

文章目录

JavaScript实现点击按钮弹出带遮罩层的视频播放窗口

本文通过具体实例展示如何利用JavaScript实现点击按钮后弹出带有遮罩层的视频播放效果,涉及CSS样式设置与JavaScript逻辑控制,供读者参考学习。

最终效果为:点击红色按钮后,页面弹出视频播放窗口,并伴随半透明遮罩层覆盖背景。

JavaScript实现点击按钮弹出带遮罩层的视频播放窗口

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

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>

以上就是本文的全部内容,希望上述实现方法能对读者的学习有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章