js 动态切换视频

点击切换视频而不刷新页面

如图所示,想要一个这样的效果,就是点击下面视频标题时,上面的视频跟着切换,但是要求页面不重新加载。

参考文章在这里  

这里贴上部分代码供大家参考。

  <li id="about_li6">
        <h2 id="about_img6"><span>媒体中心</span><img src="images/about_hx.jpg" /></h2>
        <div class="about_sub" id="about_content6">
          <a href="javascript:void(0);" id="back"><img src="images/back.png" /><span>返回</span></a>
          <h3>媒体中心</h3>
          <h4>MEDIA</h4>
          <div class="media_content">
            <div class="media_windows" id="flv1">
       <!---显示视频区域---->
           
            </div>
           <div class="media_list_warp">
              <div class="media_list_content" id="media_list_content">
              <asp:Repeater runat="server" ID="rp_video">
              <ItemTemplate>
              <a href="javascript:void(0);" class='<%#Eval("Description") %>'><%#Display.Tool_CutString(Eval("Title"),25) %></a>
              </ItemTemplate>
              </asp:Repeater>
                
              </div>
            </div>
          </div>
        </div>
      </li>

上面代码是样式代码,上面是视频的显示区域,下面视频标题列表通过repeater来读取,我把读出来的视频地址绑定为a标签的class属性,是为了点击时获取该值。




function about_img6() {
            $("#about_ul li").css("width", "146px");
            $("#media_list_content ul li").css("width", "125px");
            $("#about_ul li h2").fadeIn(500);
            $("#about_ul li h2 span,#about_ul li h2 img").hide();
            $("#about_ul li .about_sub").hide();
            $("#about_ul").animate({ "width": "1045px" });
            $("#about_li1,#about_li2,#about_li3,#about_li4,#about_li5,#about_li7").animate({ "width": "90px" });
            $("#about_li6").animate({ "width": "505px" });
            $("#about_content6").show();
            $("#about_img6").hide();

            var srclist = document.getElementById("media_list_content");
            var firsrc = srclist.getElementsByTagName("a")[0].className;
            //默认加载第一个视频
            setvideo(firsrc);

        };
        $("#media_list_content a").click(function () {
            setvideo($(this).attr("class"));
        });
        ///切换视频方法
        function setvideo(url) {
            var youku = document.getElementById("flv1");
            var htmlstr = "<object  id='obx' name='obx' width='395' height='290'>";
            htmlstr += "<param name='movie' value='" + url + "'></param>";
            htmlstr += "<param name='allowFullScreen' value='true'></param>";
            htmlstr += "<param name='allowscriptaccess' value='always'></param>";
            htmlstr += "<param name='wmode' value='opaque'></param>";
            htmlstr += "<embed src='" + url + "' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' wmode='opaque' width='395' height='290'></embed>";
            htmlstr += "</object>";
            youku.innerHTML = "";
            youku.innerHTML = htmlstr;
        };

此代码是js代码,当点击展开媒体中心时,先获取下面视频标题列表中的第一个a标签中的class属性中的视频地址,然后调用显示视频方法setvideo(url),把获取的地址传过去,然后在页面上打印出object和embed标签,两个标签一起使用的目的是为了兼容各浏览器。

当视频标题被点击时,通过attr来获取当前被点击的a标签的class的值,再调用setvideo(url)方法来在页面上显示相应的视频。

不敢私藏,拿出来与大家分享。

虽然给定引用中未提及Video.js动态切换视频源等功能的方法和使用指南,但可以基于Video.js本身的特性来阐述一般做法。 Video.js是一个广泛使用的开源库,用于在网页上创建高度自定义、跨平台且具备优秀用户体验的HTML5视频播放器,具备强大的JavaScript API可用于实现动态切换视频源等功能 [^1]。 要实现动态切换视频源,可借助Video.js的`src()`方法。以下是一个简单的示例代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Video.js Dynamic Source Change</title> <!-- 引入Video.js的CSS文件 --> <link href="https://vjs.zencdn.net/7.17.0/video-js.css" rel="stylesheet" /> </head> <body> <!-- 创建Video.js播放器 --> <video id="my-video" class="video-js" controls preload="auto" width="640" height="264"> <source src="video1.mp4" type="video/mp4"> <p class="vjs-no-js"> To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a> </p> </video> <!-- 切换视频源的按钮 --> <button id="change-source">Change Video Source</button> <!-- 引入Video.js的JavaScript文件 --> <script src="https://vjs.zencdn.net/7.17.0/video.min.js"></script> <script> // 初始化Video.js播放器 const player = videojs('my-video'); // 获取切换按钮元素 const changeSourceButton = document.getElementById('change-source'); // 为按钮添加点击事件监听器 changeSourceButton.addEventListener('click', function () { // 使用src()方法切换视频源 player.src({ type: 'video/mp4', src: 'video2.mp4' }); // 重新加载播放器以应用新的视频源 player.load(); }); </script> </body> </html> ``` 在上述代码中,首先创建了一个Video.js播放器,并指定了初始的视频源。然后,添加了一个按钮,当点击该按钮时,会调用`player.src()`方法来切换视频源,接着调用`player.load()`方法重新加载播放器以应用新的视频源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值