Fancybox v2 изменить размер высоты iframe

Есть ли способ применить приведенный ниже скрипт только к iframe в fancybox? У меня есть страница с галереей и iframe. Я хочу, чтобы iframe имел разную высоту, не влияя на размеры изображения.

$('.fancybox').fancybox({
afterLoad: function () {
    this.width = $(this.element).data("width");
    this.height = $(this.element).data("height");
}
});

person Jan    schedule 07.04.2014    source источник


Ответы (2)


Вы можете установить условие для проверки type содержимого перед передачей значений data-* в fancybox, например:

$(".fancybox").fancybox({
    afterLoad: function () {
        if (this.type == "iframe") {
            this.width = $(this.element).data("width");
            this.height = $(this.element).data("height");
        };
    }
});

JSFIDDLE


Вы также можете обратиться к $(this) как this.element

$(".fancybox").fancybox({
    afterLoad: function () {
        if (this.type == "iframe") {
            this.width = this.element.data("width");
            this.height = this.element.data("height");
        };
    }
});

JSFIDDLE

person JFK    schedule 07.04.2014

этот код работает для меня!

$.fancybox.open({
        maxWidth: 1263,
        // fitToView: true,
        width: '90%',
        // maxHeight: 292,
        autoSize: false,
        closeClick: false,
        openEffect: 'elastic',
        closeBtn: true,
        closeEffect: 'elastic',
        href: '/team/' + $(this).data("cv") + '_team.html',
        type: 'iframe',
        'afterShow': function() {
          $(".fancybox-wrap").height($(".fancybox-iframe").contents().find("html").height() + 30);
          $(".fancybox-skin").height($(".fancybox-iframe").contents().find("html").height());
          $(".fancybox-inner").height($(".fancybox-iframe").contents().find("html").height());
        }
    });
person r1si    schedule 30.06.2015