JWPlayer IE 问题,隐藏和显示后屏幕黑屏

发布于 2024-09-13 16:57:03 字数 1196 浏览 7 评论 0原文

我在 IE 中的 html 选项卡中使用 jwplayer,并使用 jQuery 显示和隐藏它们(通过 style:hidden;)

当我在 IE 中隐藏选项卡然后再次显示它时,播放视频区域会变为空白(您仍然可以听到声音并播放/暂停视频)。

有谁知道为什么会发生这种情况或有办法解决它。

干杯。

这是 jQ 进行隐藏/显示的操作:

function showpanel(panel){
  jQuery('#announcements .panel').each(function(index) {
    if(panel == index) {
      jQuery(this).css('visibility','visible');
    } else {
      jQuery(this).css('visibility','hidden');
    }
  });
  jQuery('#announcements .nav ul li.item').each(function(index) {
    if(panel == index) {
      jQuery(this).addClass("active");
    } else {
      jQuery(this).removeClass("active");
    }
  });  
}
jQuery(document).ready(function(){
showpanel(0);
  jQuery('#announcements .nav ul li.item').each(function(index) {
      jQuery(this).mouseover(function(){
                    if(jQuery(this).hasClass("active")){                           
             //console.log('if'); 
                    } else {  
                        //console.log('else');
                        document.getElementById('jw_player').sendEvent('PLAY', 'false');
                        showpanel(index);
                    }
                });
  });
});

I'm using jwplayer in html tabs in IE with jQuery showing and hiding them (via style:hidden;)

When I hide a tab in IE and then show it again the plays video area goes blank (you can still hear sound and play/pause the video).

Does anyone know why this is happening or have a way to fix it.

Cheers.

Here's the jQ doing the hiding / showing:

function showpanel(panel){
  jQuery('#announcements .panel').each(function(index) {
    if(panel == index) {
      jQuery(this).css('visibility','visible');
    } else {
      jQuery(this).css('visibility','hidden');
    }
  });
  jQuery('#announcements .nav ul li.item').each(function(index) {
    if(panel == index) {
      jQuery(this).addClass("active");
    } else {
      jQuery(this).removeClass("active");
    }
  });  
}
jQuery(document).ready(function(){
showpanel(0);
  jQuery('#announcements .nav ul li.item').each(function(index) {
      jQuery(this).mouseover(function(){
                    if(jQuery(this).hasClass("active")){                           
             //console.log('if'); 
                    } else {  
                        //console.log('else');
                        document.getElementById('jw_player').sendEvent('PLAY', 'false');
                        showpanel(index);
                    }
                });
  });
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不奢求什么 2024-09-20 16:57:03

我用...

if(panel == index) {
      jQuery(this).css('z-index','2');
    } else {
      jQuery(this).css('z-index','1');
    }

代替了可见性,效果很好。

I used...

if(panel == index) {
      jQuery(this).css('z-index','2');
    } else {
      jQuery(this).css('z-index','1');
    }

Instead of the visibility and it worked great.

左秋 2024-09-20 16:57:03

解决此问题的最佳方法是在单击另一个选项卡时删除播放器。然后在单击/重新单击该选项卡时重新加载播放器。您可以使用 jwplayer("container").remove(); 删除播放器-- 假设你的 div 和玩家在里面是一个 id 名为container的容器。要将其添加回来,只需放置相同的 jwplayer("container").setup({...});在那个函数中。

Best way to fix this solution is to remove the player when another tab is clicked. Then load the player back in when that tab is clicked/re-clicked. You can remove the player by using jwplayer("container").remove(); -- assuming your div with the player in it is an id named container. To add it back in just place the same jwplayer("container").setup({...}); in that function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文