【问题标题】:Add/remove class to video element向视频元素添加/删除类
【发布时间】:2016-02-08 05:47:52
【问题描述】:

我正在开发一个自助服务终端式网页以显示选项菜单。单击标题会打开一个全屏视频,然后在视频结束时关闭返回菜单。

为了保持页面整洁,我想隐藏video 元素,直到视频真正被点击调用。我用 CSS 类做到了这一点。视频全屏打开,完成后关闭并再次添加 hide 类。

工作脚本

$(document).ready(function() {
  $('.cell').on('click', function() {
    var element = this.getElementsByTagName('video');
    var m = element[0].getAttribute('id');

    console.log(m);
    var v = document.getElementById(m);
    if (v.webkitRequestFullscreen) {
      v.className = "";
      v.webkitRequestFullscreen();
    }
    v.play();

    $("#" + m).on("ended", function() {
      this.webkitExitFullscreen();
      this.className = "hide";
    });
  })
})

如果用户自行退出全屏视频,我会遇到视频不隐藏的问题。我尝试使用基于 HTML5 视频 API 的$("#" + m).on("ended" || "resize", function()...,但没有奏效。我还考虑禁用点击或覆盖全屏div 以获取任何点击并强制视频一直播放,但这对我来说似乎很可疑。关于如何解决这个问题的任何想法?

Here's a CodePen demo of the content and script

【问题讨论】:

    标签: javascript css video


    【解决方案1】:

    空格分隔列表:

    $("#" + m).on("ended resize"
    

    要让它发挥作用,你可能需要这个技巧:How to detect DIV's dimension changed?

    更新:我能够捕捉到全屏事件:

    $(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange', function(e){
        console.log("fullscreen change");
    });
    

    【讨论】:

    • 不,这样不行。我想知道是否进入/退出全屏不算作调整大小...?
    • 也许如果你设置了一个 sn-p 或 jsfiddle,你会自己看到它,或者至少我们可以更容易地提供帮助
    • 刚刚添加到问题中。
    • 在同一个函数中使用带有endedfullscreenchange 的空格分隔列表仍然对我不起作用,但我可以运行两个不同的jQuery 选择器。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-02-21
    • 2015-08-13
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多