创建网页Video上的悬浮工具条(Create toolbar overflow video on webpage)

本文介绍了如何使用JavaScript脚本来实现网页Video上的悬浮工具条。在视频窗口上添加了一个弹出式工具条,当鼠标悬停时显示,一段时间无操作后自动隐藏。在试验过程中,遇到Windows MediaPlayer控件覆盖div的问题,最终通过设置WMP控件属性解决了这一问题,实现了视频播放/暂停的控制功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建网页Video上的悬浮工具条

Create toolbar overflow video on webpage

 

前些天研究使用javascript脚本操作网页上的视频控件.因为设计的需要,想要在视频窗口上增加一个弹出式的工具条,类似于Realone的全屏按钮,当鼠标移动到视频区域时,工具条可以弹出,超过一定时间不操作,工具条可以自动隐藏.

       但是在试验过程中使用Windows MediaPlayer控件发现,好像脚本创建的div对象总是被视频窗口盖在下面.上网Google了两天,也没有发现好的解决办法,发现了一个帖子,很是有同感,但几乎让我丧失了信心:http://www.milonic.com/mfa/2004-July/004569.html

       后来决定改变方案,我要做一个ActiveX控件,将WMP封装起来,然后在我自己的ActiveX控件中实现弹出菜单,当这个想法实现一半的时候,在一次测试中,为了禁止WMP窗口的全屏,我将WMP控件属性设置为“<param name="windowlessVideo" value="1">”,在页面预览效果时,发现页面上的div竟然出现在video窗口上面了。这是我得出结论:具备全屏功能时,WMP视频窗口是一个topmost的窗口(以便他可以全屏),导致其他窗口不能在其上显示。到这里,我又放弃了封装自己的ActiveX,重新开始用javascript写控制脚本。下面的代码是一个雏形,可以在video左上角弹出一个方框按钮,点击按钮时,video开始播放或者暂停。

 

<html>

       <title>演示页面</title>

       <head>

       </head>

       <body οnlοad="onload();">

       <table id="table1">

       <tr>

       <td>

       <div id="div1">

              <object classid=clsid:22d 6f 312-b 0f 6-11d0-94ab -0080c 74c 7e95 width=240 height=160 ID="Object1" VIEWASTEXT>

                     <param name="Mute" value="1">

                     <param name="ShowControls" value="0">

                     <param name="ShowPositionControls" value="0">

                     <param name="ShowAudioControls" value="1">

                     <param name="ShowTracker" value="0">

                     <param name="ShowDisplay" value="0">

                     <param name="ShowStatusBar" value="0">

                     <param name="ShowGotoBar" value="0">

                     <param name="ShowCaptioning" value="0">

                     <param name="AutoStart" value=1>

                     <param name="Volume" value="-1000">

                     <param name="AnimationAtStart" value="0">

                     <param name="TransparentAtStart" value="0">

                     <param name="AllowChangeDisplaySize" value="0">

                     <param name="AllowScan" value="0">

                     <param name="EnableContextMenu" value="0">

                     <param name="ClickToPlay" value="0">

                     <param name="CurrentPosition" value="0">

                     <param name="windowlessVideo" value="1">

                     <param name=filename value=somefile.wmv>

              </object>

       </div>

       </td>

       </tr>

       </table>

       <script language="javascript">

 

       var src = document.getElementById("table1");

       var objDragItem = document.createElement("DIV");

       objDragItem.objVideo = document.getElementById("Object1");

       var Container = document.getElementById("div1");

       objDragItem.div1 = Container;

      

       objDragItem.style.fontSize = "1px";

       objDragItem.style.height       = 20;

       objDragItem.style.width       = 100;

       objDragItem.style.background = "#DDDDDD";

       objDragItem.style.fontColor  = "#0000ff";

       objDragItem.style.position    = "absolute";

       objDragItem.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=60)";

      

       objDragItem.objVideo.style.position      = "absolute";

    objDragItem.objVideo.style.pixelTop  = 0;

    objDragItem.objVideo.style.pixelLeft = 0;

    objDragItem.objVideo.style.zIndex = 0;

      

       objDragItem.style.borderStyle       = "solid";

      objDragItem.style.borderWidth     = "1px";

      

    objDragItem.style.pixelTop  = 0;

    objDragItem.style.pixelLeft = 0;

    objDragItem.style.zIndex = 1;

 

       objDragItem.onmousedown = mousedown;

       objDragItem.objVideo.onmousedown = mousedownvideo;

       objDragItem.objVideo.onmousemove = mouseovervideo;

       objDragItem.objVideo.prnt = objDragItem;

 

       src.insertBefore(objDragItem);

      

       var leave = 0;

       function mousedownvideo(e)

       {

              this.Mute = !this.Mute;

       }

      

       function mouseovervideo(e)

       {

              leave = 0;

              if(this.prnt.style.display == "none")

              {

                     this.prnt.style.display = "";

              }

       }

      

       function mousedown(e)

       {

              leave = 0;

              state = this.objVideo.PlayState;

              if (state == 0)

                     this.objVideo.Play();

              else if (state == 1)

                     this.objVideo.Play();

              else if (state == 2)

                     this.objVideo.Pause();

       }

      

       var time = 0;

       var interval = 1000;

      

       function onload()

       {

              window.setInterval("onTimer();",interval);  

              objDragItem.style.display = "none";

       }

      

       function onTimer()

       {

              var ct = document.getElementById("div1");

 

              leave ++;

              if(leave > 3)

              {

                     objDragItem.style.display = "none";

              }

       }

      

       </script>

       </body>

</html>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值