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

如何用Fancybox3创建三个自定义尺寸的独立iframe?

嘿,我来帮你搞定这个问题!要给每个Fancybox3的iframe设置专属尺寸,其实有几种简单又灵活的方法,我给你一一拆解:

方法1:利用Fancybox内置的data属性直接定义

Fancybox3本身支持通过data-width和data-height属性直接给单个iframe设置尺寸,你只需要在对应的<a>标签里加上这两个属性就行,不用修改全局CSS。这种方式最直接,每个链接独立配置:

<!-- 第一个iframe:宽800px,高600px -->
<a data-fancybox data-type="iframe" data-src="http://codepen.io/fancyapps/full/jyEGGG/" data-width="800" data-height="600" href="javascript:;"> 网页1 </a>

<!-- 第二个iframe:宽1000px,高700px -->
<a data-fancybox data-type="iframe" data-src="你的第二个目标链接" data-width="1000" data-height="700" href="javascript:;"> 网页2 </a>

<!-- 第三个iframe:宽600px,高800px -->
<a data-fancybox data-type="iframe" data-src="你的第三个目标链接" data-width="600" data-height="800" href="javascript:;"> 网页3 </a>
方法2:自定义CSS类,通过类名区分尺寸

如果需要给同一类iframe统一设置尺寸,或者想保留全局样式的同时覆盖特定iframe,可以给<a>标签加自定义类,再写对应的CSS规则:
首先修改HTML,给每个链接加专属类:

<a data-fancybox data-type="iframe" data-src="链接1" class="iframe-size-1" href="javascript:;"> 网页1 </a>
<a data-fancybox data-type="iframe" data-src="链接2" class="iframe-size-2" href="javascript:;"> 网页2 </a>
<a data-fancybox data-type="iframe" data-src="链接3" class="iframe-size-3" href="javascript:;"> 网页3 </a>

然后添加CSS,针对不同类名设置尺寸:

/* 全局基础样式(保留你原来的配置) */
.fancybox-slide--iframe .fancybox-content {
  max-width : 80%;
  max-height : 80%;
  margin: 0;
}

/* 第一个iframe的专属尺寸 */
.iframe-size-1 ~ .fancybox-container .fancybox-slide--iframe .fancybox-content {
  width: 800px;
  height: 600px;
}

/* 第二个iframe的专属尺寸 */
.iframe-size-2 ~ .fancybox-container .fancybox-slide--iframe .fancybox-content {
  width: 1000px;
  height: 700px;
}

/* 第三个iframe的专属尺寸 */
.iframe-size-3 ~ .fancybox-container .fancybox-slide--iframe .fancybox-content {
  width: 600px;
  height: 800px;
}
方法3:通过JS回调动态设置(适合复杂场景)

如果你的尺寸需要根据内容、屏幕尺寸或其他条件动态计算,可以用Fancybox的beforeShow回调函数来灵活控制:

// 先给所有iframe链接加上同一个分组名,方便统一处理
$('[data-fancybox="iframe-group"]').fancybox({
  type: 'iframe',
  beforeShow: function(instance, current) {
    // 根据当前链接的特征(比如src关键词)设置不同尺寸
    if (current.src.includes('jyEGGG')) {
      current.width = 800;
      current.height = 600;
    } else if (current.src.includes('你的第二个链接关键词')) {
      current.width = 1000;
      current.height = 700;
    } else {
      current.width = 600;
      current.height = 800;
    }
  }
});

记得把HTML里的data-fancybox属性改成统一的分组名,比如data-fancybox="iframe-group"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:52:07