具有自定义附加元素的fancybox库
在打开fancybox画廊之前,我将元素附加到fancybox内部窗口但是大小剂量变化并且appende’t元素溢出..,如何resize?
我的问题 – http://prntscr.com/4esnpq
HTML
title1 text1 img1 title2 text2 img2 title3 text3 img3 title4 text4 img4
JavaScript的
$(".fancybox").fancybox({ padding: 35, titleShow: false, beforeShow:function() { var title = $(this.element).find('b').text(); var text = $(this.element).find('em').text(); $('.fancybox-inner').prepend(''+ title +''); $('.fancybox-inner').append(''+ text +''); $.fancybox.update(); } });
任何解决方案 fancybox版本2。
您可能无法对图像执行此操作,因为根据图像大小而不是.fancybox-inner
大小,脚本会动态计算fancybox大小。
您可能需要将内容处理为html
,例如:
$(".fancybox").fancybox({ fitToView: false, type: "html", beforeShow: function () { var title = $(this.element).find('b').text(); var text = $(this.element).find('em').text(); $('.fancybox-inner').html(''); $('.fancybox-inner').prepend('' + title + ''); $('.fancybox-inner').append('' + text + ''); $.fancybox.update(); } });
请参阅JSFIDDLE
我找到了很好的解决方案来编辑主要的fancybox库。
-
在
defaults
定义新的attach_size: 0
-
在函数
_setDimension
找到F.inner.width(width - padding2).height(height - padding2);
并用F.inner.width(width - padding2).height(height - padding2 + current.attach_size);
替换它。F.inner.width(width - padding2).height(height - padding2 + current.attach_size);
-
将fancybox元素句柄更改为
$(".fancybox").fancybox({ padding: 35, titleShow: false, beforeShow:function() { var title = $(this.element).find('b').text(); var text = $(this.element).find('em').text(); $('.fancybox-inner').prepend(''+ title +''); $('.fancybox-inner').append(''+ text +''); var sum_size = $('.fancybox-inner b').height() + $('.fancybox-inner em').height(); this.attach_size += sum_size; } });
对我有用;)