Fancybox v2覆盖/格式标题

时间:2011-11-22 10:37:44

标签: jquery fancybox

如何覆盖新版花式框中的标题?

$(document).ready(function() {
    $(".photogalleryLightbox li a").fancybox({
        helpers:{ 
                    title: {
                        type: 'inside',
                        beforeShow: function(opts)
                                    {
                                        console.log('beforeShow title helper');
                                    },
                        },
                    buttons : {}
                },
        beforeShow: function()
        {
            console.log('beforeShow');
            // var obj = $(currentArray[currentIndex]); // from prev. version
            // if (obj.next().length) return obj.next().html(); // from prev. version
        }
    });
});

我试过这个,但不知道如何将变量作为索引。

2 个答案:

答案 0 :(得分:2)

您可以使用回调来更新标题,例如:

$(".photogalleryLightbox li a").fancybox({
        beforeLoad : function() {
            this.title = 'My Custom Title';
        },
        helpers: { 
            title: {
                type: 'inside',
                beforeShow: function(opts) {
                    console.log('beforeShow title helper');
                },
            },
            buttons : {}
        },
        beforeShow: function() {
            console.log('beforeShow');
            // var obj = $(currentArray[currentIndex]); // from prev. version
            // if (obj.next().length) return obj.next().html(); // from prev. version
        }
    });

答案 1 :(得分:0)

我已将图像编号添加到标题中,如下所示:

beforeShow : function() {
  this.title = '<span class="imgNo">Bild ' + (this.index + 1) + ' von ' + this.group.length + '</span>' + (this.title ? '' + this.title + '' : '');
}

这很好但是div.fancybox-wrap的大小和偏移的计算出错了: 使用我的图像编号,每个图像在灯箱中都有一个标题,但并非所有图像都从缩略图标题标签中获得“真实”标题。 但是这些尺寸只能用那些“真正的”标题来计算。

beforeLoad()中添加图片编号的工作原理也有问题。

有人知道如何解决计算问题吗? 我还没有在fancybox代码中找到它,所以我可以在那里修复它,但我更喜欢在回调函数中执行它而不是通过更改源代码。