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

使用lightGallery创建图片与HTML5视频混合轮播时视频加载失败求助

问题排查与解决方案

核心错误点

  • lightgallery初始化时未显式声明启用video插件,即使引入了插件文件也不会自动加载
  • 视频相关的data-video/data-lg-size等属性放错了位置:你配置的轮播项选择器是.item,属性需要直接挂载在.item元素上,而不是内部的<a>标签,lightgallery不会自动读取子元素的配置属性
  • 可选优化:如果不需要使用video.js的特殊功能,无需额外引入video.js的CSS和JS文件,lightgallery原生支持HTML5视频播放

修改方案

1. 调整初始化JS

在初始化参数中添加plugins配置,显式引入用到的插件:

lightGallery(document.getElementById('slideShow'), {
    selector: '.item',
    plugins: [lgVideo, lgThumbnail, lgAutoplay, lgFullscreen],
    videojs: false // 不需要用到video.js功能就保留该配置,需要使用的话删除该行即可
});

2. 调整HTML视频项结构

把视频相关属性移到.item元素上:

<div id="slideShow">
    <div class="item" data-src="../webroot/1.jpg">
        <img src="../webroot/1.jpg" />
    </div>
    <div class="item" data-src="../webroot/2.jpg">
        <img src="../webroot/2.jpg" />
    </div>
    <div class="item" data-src="../webroot/3.jpg">
        <img src="../webroot/3.jpg" />
    </div>
    <!-- 调整后的视频项 -->
    <div class="item"
        data-lg-size="1280-720"
        data-video='{
            "source": [{"src":"../webroot/1.mp4", "type":"video/mp4"}],
            "attributes": {"preload": false, "controls": true}
        }'
        data-poster="../webroot/1.jpg">
        <img
            width="300"
            height="100"
            class="img-responsive"
            src="../webroot/1.jpg"
        />
    </div>
</div>

3. 额外排查项

确认../webroot/1.mp4路径正确,直接在浏览器地址栏访问该路径可以正常播放视频,排除跨域、文件损坏、路径错误问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 11:48:03