Как включить видимость пользовательского компонента video-js при бездействии пользователя
Я использую VideoJS с реакцией и создал пользовательский компонент строки заголовка, используя
videojs-overlay
. Я хочу, чтобы когда пользователь неактивен (мышь не двигается), эта строка заголовка должна исчезать и исчезать по мере того, как пользователь перемещает мышь. Это делается в
ControlBar
компонент, а вот для нестандартных компонентов как это сделать непонятно.
var TitleBar = videojs.extend(Component, {
constructor: function () {
// It is important to invoke the superclass before anything else,
// to get all the features of components out of the box!
Button.apply(this, arguments);
},
// The `createEl` function of a component creates its DOM element.
createEl: function () {
return videojs.dom.createEl('div', {
//want to toggle show/hide on user activity here with CSS classes
className: `vjs-title-bar`,
alt: 'Title Bar',
innerHTML: `
<div class="back-btn" >
<button onclick="alert(1234)" >
<span>
<i class="fas fa-long-arrow-left"></i>
</span>
</button>
</div>
`,
});
},
});
Любая помощь будет высоко оценена
1 ответ
У меня нет опыта с реакцией, но попробуйте следующее: после
Button.apply(this, arguments);
добавить что-то вроде:
this.on(this.player(), ["useractive", "userinactive"], this.showHide);
затем добавьте эту функцию в компонент:
showHide: function(ev) {
if (ev.type === 'userinactive') {
this.hide() //hide immediately!
//if you want animation, add class to your css and do this.addClass("myHideClass")
} else {
this.show();
}
}