隨着的fancybox V2.X你可以設置你的一個分離(隱藏)title
<div>
恰到好處觸發的fancybox像錨後:
<a class="fancybox" href="images/01.jpg">open image</a>
<div style="display: none;"><!-- my title for fancybox above-->
<p>Line 1</p>
<p>line 2 with <a href="#nogo">link</a></p>
</div>
通過這種方式,您可以擁有更復雜的title
,其中包含許多行和html內容。然後,你可以使用一個更簡單的腳本:
$(document).ready(function() {
$(".fancybox").fancybox({
helpers : {
title : { type : 'inside' }
}, // helpers
/* the following option works fine until version v2.0.5 or below */
// afterLoad: function(){
// this.title = '<div class="myTitle">'+$(this.element).next('div').html()+'</div>';
// }
/* the following option should be set for version v2.0.6+ */
beforeShow: function(){
this.title = '<div class="myTitle">'+$(this.element).next('div').html()+'</div>';
}
}); // fancybox
}); // ready
您還可以設置分離的CSS聲明爲您title
:
.myTitle {background-color: #fff; padding: 5px;}
.myTitle p {line-height: 16px; font-size: 12px; padding: 0; margin: 0;}
/* if you want the title stick to the image in fancybox */
.fancybox-title-inside-wrap {margin-top: 0 !important;}
使用這種方法,你不必亂用的fancybox JS/CSS文件。還有更少的JavaScript意味着更少的CPU開銷與不必要的拆分,大小計算,換行等。
問題:如果我有更多的圖像(圖庫)?
答:做每個圖像相同的HTML類似:
<a class="fancybox" rel="gallery" href="images/01.jpg">open image 1</a>
<div style="display: none;"><!-- my title for fancybox above-->
<p>Line 1</p>
<p>line 2 with <a href="#nogo">link</a></p>
</div>
<a class="fancybox" rel="gallery" href="images/02.jpg">open image 2</a>
<div style="display: none;"><!-- my second title -->
<p>Line 1 for second image title</p>
<p>line 2 with <a href="#nogo">link</a></p>
<p>a third line here, why not?</p>
</div>
...等,並使用相同的腳本。
注意:在OP評論:
如果我點擊一個或下一個按鈕標題消失。
有關的fancybox v2.0.6,我們需要構建title
與選項beforeShow
,而不是afterLoad
所以這行:
afterLoad: function(){
this.title = '<div class="myTitle">'+jQuery(this.element).next('div').html()+'</div>';
}
應該是(從v2.0.6):
beforeShow: function(){
this.title = '<div class="myTitle">'+jQuery(this.element).next('div').html()+'</div>';
}
Working demo using v2.0.6
來源
2012-04-20 18:18:09
JFK
如果一切正常,我會吻你...:d:d:d Unfortun ately我可能做錯了什麼..這是我的頁面:multiformeingegno.it 我用你的代碼,但當我點擊圖片時,等待圖標出現,但沒有任何反應。唯一不同於你的代碼的是,不是「Open image 1」文本,而是顯示圖像的縮略圖。 – MultiformeIngegno 2012-04-20 18:57:02
它觸發了一個js錯誤,所以改變這行'this.title ='
'$(this.element)'應該是'jQuery(this.element)' – JFK 2012-04-20 19:06:51