2015-10-05 76 views
0

我目前正在为video.js构建一个插件,在某些断点处呈现覆盖屏幕。但是,如果不启动视频,我无法点击任何叠加层。我想我需要禁用播放器上的点击播放功能。禁用/启用点击播放功能

我应该如何去禁用/启用video.js播放器的点击播放功能?

function createBreak(breakpoint){ 

    player.pause();//pause the playback 
    player.getChild('controlBar').hide();//hide the controlbar 
    breakpoint.resolved = true;// 

    var button = createEl('button',{});//adds button to video.js parent <div> 
    button.innerHTML = "continue";// 
    //THE PROBLEM: this button cannot be clicked (this is just a proof of concept) 
    // because clicking on it will restart the player 
    //WHAT I NEED: a function that can disable the click-to-play 


} 

This solution已经存在,但它似乎只在旧版本的Video.js

+1

请将您遇到问题的代码添加到问题中。这将帮助你获得更好的答案。 – baao

+0

我对我正在使用的代码没有任何具体问题,但我会发布上下文 – Rgw3d

回答

1

的工作,这是怎么回事是在重叠点击向下传播到了Video.js球员。您只需停止叠加层上单击事件的传播。这意味着你不需要禁用任何video.js播放器功能。

Mozilla Doc: Event.stopPropagation()

Event Bubble Cancellation Demo

什么可能是适合你的情况是沿

var overlay = /* Get reference to overlay element here */ 
overlay.addEventListener('click', function(e) { 
    functionBearingWhatEverCodeYouAlreadyHaveForOverlayClickEventIfAny(); 
    if(e.stopPropagation)  e.stopPropagation(); 
    if(e.cancelBubble != null) e.cancelBubble = true; 
}) 

行东西,将在覆盖停止click事件,而不是让玩家点击下面。

+0

我想通了!我意识到我在'css'中使用了'pointer-events:none';'在我正在使用的原型中。我使用的是'.vjs-text-track-display'类,因为我知道它会在视频上显示...并没有意识到它禁用了指针事件。 谢谢你的回答,虽然我学到了很多! – Rgw3d

0

由于.vjs-big-play-button的z-index值被设置为2,所以你应该给你的覆盖层一个更大的z-index。然后它也会覆盖播放按钮。