首页 > 解决方案 > 如何在fancybox 3 iframe 中添加额外内容?

问题描述

例如我有这个网址

<a data-fancybox data-type="iframe" data-src="/webrtcv2/" href="javascript:;"><i class="fa fa-video-camera" aria-hidden="true"></i></a>

它通常只显示 iframe 的 url 但我需要将这个额外的 div 内容添加到 iframe 之外而不是 iframe 内

<div id="video-content" class="video-link" >
<a id="iframelink" class="link-id-videochat" href="">Send invitation</a>
</div>

这是我的fancybox 3代码

$(document).ready(function(){

$('[data-fancybox="iframe"]').fancybox({
    toolbar  : false,
    smallBtn : true,
    iframe : {
        preload : true
    }
})
});

最终的结果将是完全一样的 在此处输入图像描述

标签: jqueryhtmlfancybox-3

解决方案


最简单的解决方案是使用afterLoad回调在内容区域中克隆和附加表单,例如:

JS

$("#test").fancybox({
  afterLoad : function(instance, current) {
    current.$content.append( $('#video-content').clone(true).show());
  }
})

CSS

.fancybox-slide--iframe .fancybox-content {
  max-width: 500px;
  max-height: 200px;
}

#video-content {
  position: absolute;
  top: calc(100% + 20px);
  background: #fff;
  left: 0;
  right: 0;
  padding: 5px;
  text-align: center;
}

演示 - https://jsfiddle.net/18hbr7oe/


推荐阅读