You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关闭Colorbox模态框时停止HTML5视频播放的技术问询

解决方案:Colorbox模态框关闭/切换时暂停HTML5视频

针对你遇到的Colorbox模态框关闭后视频后台播放的问题,直接利用Colorbox提供的回调钩子就能覆盖所有场景(关闭按钮、ESC键、点击外部、切换上下页),无需修改现有HTML结构,具体实现如下:

1. 修改Colorbox初始化代码,添加回调函数

在你的Drupal behaviors里,给.inline的Colorbox配置加上onClosed和onCleanup回调,同时编写通用的视频暂停函数:

Drupal.behaviors.colorboxInit = {
  attach: function () {
    $('.lightbox').click(function(e){
      e.preventDefault();
    });
    $('.lightbox').colorbox({
      rel: 'lightbox',
      transition:'none',
      width: '80%',
      height: '80%'
    });
    $('.inline').colorbox({
      inline:true,
      rel: 'lightbox',
      width: '80%',
      // 模态框关闭时触发(覆盖ESC、点击外部、关闭按钮)
      onClosed: function() {
        pauseColorboxVideo();
      },
      // 切换上下页前触发,清理当前内容时暂停视频
      onCleanup: function() {
        pauseColorboxVideo();
      }
    });

    // 通用暂停视频函数
    function pauseColorboxVideo() {
      // 定位Colorbox当前加载内容容器里的视频
      const currentVideo = $('#cboxLoadedContent').find('video')[0];
      if (currentVideo && !currentVideo.paused) {
        currentVideo.pause();
      }
    }
  }
};

2. 关键逻辑说明

  • onClosed回调:Colorbox模态框完全关闭时触发,不管是点击关闭按钮、按ESC键还是点击外部遮罩区域,都会执行这个函数,确保视频暂停。
  • onCleanup回调:当点击cboxNext/cboxPrevious切换内容时,Colorbox会先清理当前显示的内容,这个钩子会在清理前触发,刚好可以暂停当前正在播放的视频。
  • pauseColorboxVideo函数:利用Colorbox内置的#cboxLoadedContent容器ID(所有加载的内容都会放到这个容器里),直接定位当前显示的视频元素,判断是否在播放后执行暂停操作,无需关心原隐藏div的内联样式问题。

这个方案完全适配你的HTML5视频场景,覆盖所有可能的模态框关闭/切换场景,不需要额外修改HTML结构。

内容的提问来源于stack exchange,提问作者LeraA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:50:30