请问火狐的mozRequestFullScreen方法为何不生效

来源:4-5 video-javascript(2)

weibo_执著的弧线_0

2019-09-24 22:26:30

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>自定义视频播放器</title>
   <style type="text/css">
       *{margin: 0;padding: 0;}
      .outer{
         height: 332px;
         width: 540px;
         box-shadow: 0 0 4px #5b606d;
         margin: 50px auto;
         overflow: hidden;
      }
      .outer video{width:540px;
            height: 305px; 
           float: left;
           background: #000;
           }
        .outer .controls{
           height: 27px;
           width: 540px;
           background: url('images/ctrs_bg.gif')repeat-x;
           float: left;
           position: relative;
        }   
        .outer .controls .playNode{ 
           background: url('images/playNode.png')no-repeat center;
           height: 26px;
          width: 40px;
          float: left;
          margin-top: 2px;
          cursor: pointer;
        }
        .outer .controls .pauseNode{
           background: url('images/pause.png')no-repeat center;
           height: 26px;
          width: 40px;
          float: left;
          margin-top: 2px;
          cursor: pointer;
        }  
        .outer .controls .playLine{
           position: relative;
           width: 267px;
           height: 10px;
           background: url('images/load_bg.png')repeat-x;
           margin: 9px 0 0 14px;
           float: left;
           cursor: pointer;
        } 
        .outer .controls .playLine .leftLine{
           background: url('images/left_bg.png')no-repeat center;
           height: 10px;
           width: 4px;
           position: absolute;
           left: -3px;
        } 
        .outer .controls .playLine .rightLine{
           background: url('images/right_bg.png')no-repeat center;
           height: 10px;
           width: 4px;
           position: absolute;
           left: 265px;
        }
        .outer .controls .playLine .lineNode{
           background: url('images/crl_bg.png');
           width: 17px;
           height: 17px;
           line-height: 27px;
           top: -2px;
           /*左边距为圆环的半径*/
 left: -8.5px;
           position: absolute;
           cursor: pointer;
        }
        .outer .controls .playTime{
           color: #fff;
           position: absolute;
           left: 332px;
           font-size:10px; 
           line-height: 27px;
        }
      .outer .controls .volume{
         background: url('images/volume_bg.png')no-repeat;
         height: 16px;
         width: 17px;
         line-height: 27px;
         top: 5px;
          position: absolute;
          margin-left: 402px;
          cursor: pointer;
      }
      .outer .controls .volumeLine{
         width: 62px;
         height: 8px;
         background: url('images/volumeLine_bg.png')repeat-x;
         position: relative;
          left: 424px;
          top: 9.5px;
          cursor: pointer;
      }
      .outer .controls .volumeLine .v-left{
         background: url('images/v_left.png');
         width: 3px;
         height: 8px;
         position: absolute;
         right: 62px;
         top: 0px;
      }
      .outer .controls .volumeLine .v-right{
         background: url('images/v_right.png');
         width: 3px;
         height: 8px;
         position: absolute;
         right: -2px;
         top: 0px;
      }
      .outer .controls .volumeLine .v-node{
         background: url('images/vo_d.png');
         height: 13px;
         width:15px;
         position: absolute;
          top: -2px;
          left: -4px;
          cursor: pointer;
      }
      .outer .controls .fullScreen{
         width: 15px;
         height: 17px;
         position: absolute;
         right: 2px;
         background: url('images/full_bg.png');
         top: 5px;
         cursor: pointer;
      }
   </style>
</head>
<body>
   <div class="outer">
      <video src="../data/imooc.mp4" poster="data/poster.jpg" class="videoNode"></video>
      <div class="controls">
         <!-- 播放暂停 -->
 <div class="playNode"></div>
         <!-- 播放进度条 -->
 <div class="playLine">
            <div class="leftLine"></div>
            <div class="rightLine"></div>
            <div class="lineNode"></div>
         </div>
         <!-- 播放时间 -->
 <div class="playTime">
            <span class="curTime">2:30</span>
            <span>-</span>
            <span class="totalTime">4:00</span>
         </div>
         <!-- 声音 -->
 <div class="volume"></div>
         <div class="volumeLine">
            <div class="v-left"></div>
            <div class="v-right"></div>
            <div class="v-node"></div>
         </div>
            <!-- 全屏 -->
 <div class="fullScreen"></div>
      </div>
   </div>
   <script type="text/javascript">
      //播放按钮
 var playNode = document.getElementsByClassName('.playNode')[0],
      // 视频资源节点
 videoNode = document.getElementsByTagName('video')[0],
         //布尔值 暂停播放
 Btnplay = true,
         //全屏播放按钮
 fullScreen = document.getElementsByClassName('.fullScreen')[0],
         //当前时间
 curTime = document.getElementsByClassName('.curTime')[0],
         //总时间
 totalTime = document.getElementsByClassName('.totalTime')[0];
      //播放、暂停的事件
 playNode.onclick = function(){
         //传统的通过布尔值去改变classname的方法
 Btnplay = !Btnplay;
            if (Btnplay == false) {
               this.className = 'pauseNode';
               videoNode.play();
            }else{
               this.className = 'playNode';
               videoNode.pause();
            }
         }

      //全屏和缩放
 fullScreen.onclick = function(){
         if(videoNode.webkitRequestFullscreen){
            videoNode.webkitRequestFullscreen();
         }
         else if(videoNode.mozRequestFullScreen){
            videoNode.mozRequestFullScreen();
         }
         else{
            videoNode.requestFullscreen();
         }
      };

      // //时间不足10的解决方法
 // addTime = function (n) {
      //     return n<10? '0'+n:n;
      // }
      // //时间显示
 // //时间显示-总时间
 // videoNode.addEventListener('canplay',function () {
      //     var totalTime = parseInt(videoNode.duration),
      //        m = parseInt(totalTime/60),
      //        s = totalTime%60,
      //        totalTime_count = addTime(m)+':'+addTime(s);
      //
      //
      // })
 </script>
</body>
</html>


写回答

1回答

好帮手慕慕子

2019-09-25

同学你好, 首先, 我们修改代码中存在的语法错误。 通过getElementsByClassName获取元素,只需要传入对应的类名即可,不需要添加点, 建议修改:

http://img.mukewang.com/climg/5d8addc009c6afe811160563.jpg

然后, 我们再来分析,为什么同学的代码没有生效, 因为同学定义的变量名fullScreen, 与火狐浏览器自带的fullScreen值, 产生了冲突, 所以无法实现效果。

建议修改: 可以修改变量名

http://img.mukewang.com/climg/5d8ae1620961b13509670176.jpg

http://img.mukewang.com/climg/5d8ae1bf09743c4b08640485.jpg

同学可以在测试一下哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~~

0

0 学习 · 6815 问题

查看课程