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

如何实现弹窗视频在移动设备上的响应式适配

响应式模态框视频适配方案

固定宽高的iframe无法适配小尺寸屏幕是很常见的问题,核心是用相对单位+比例容器替代固定尺寸设置,具体修改如下:

第一步:修改HTML结构

移除iframe标签上写死的width="560" height="315"属性,给包裹iframe的父级容器新增响应式类名,修改后的相关代码:

<button type="button" class="action-oser" id="click-vlink2">
    <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-3 18v-12l10 6-10 6z" style="fill:#fff" /></svg>
</button>
<div id="video-modal2" style="display:none;">
    <div class="content-oser responsive-video-container">
        <iframe id="youtube2" src="https://www.youtube.com/embed/JexOJOssGwk?rel=0&enablejsapi=1&origin=https%3A%2F%2Fwww.apetito.co.uk&widgetid=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
    </div>
</div>

你原来写的弹窗控制、关闭重置视频播放的JS逻辑不需要改动,可以直接保留。

第二步:添加响应式CSS

把以下代码加到站点全局样式表中,同时适配模态框本身和视频比例:

/* 适配Magento模态框容器,移动端预留边距、限制最大宽度 */
.nursery-modal .modal-inner-wrap {
    width: 90% !important;
    max-width: 560px;
    margin: 1rem auto;
}
/* 16:9比例响应式视频容器 */
.responsive-video-container {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.25%; /* 高度按宽度的56.25%生成,对应16:9的视频比例 */
    overflow: hidden;
}
/* 让iframe完全撑满比例容器 */
.responsive-video-container iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
}

适配效果

  • 桌面端:视频最大宽度保持560px,和原有展示效果完全一致
  • 移动端:视频宽度自动适配模态框尺寸,高度按16:9比例自动计算,不会出现溢出、变形、横向滚动条的问题
  • 所有屏幕尺寸下都能保持正常的展示比例,不需要针对特定设备写单独的适配规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:54:23