ファンシーボックスにタイトル(キャプションやリンクなど)を追加する方法を教えてください。 title = "Bla"を追加すると、ボックスに表示されることを認識しています。しかし、画像リンクにcaption = "Blabla"のようなものを追加した場合、そのキャプションタグを取得するためにjquery.fancybox.jsにどのコードが必要ですか?
オリジナルのjquery.fancybox.jsファイルをいじる必要はありません。独自のカスタマイズされたfancyboxスクリプト内にこのオプションを追加できるからです。
HTML5 DOCTYPE
を使用している場合は、キャプションにdata-*
属性を使用して、次のHTMLを作成できます。
<a class="fancybox" href="images/01.jpg" data-caption="This is the caption" >Open fancybox</a>
次に、カスタムファンシーボックススクリプトを設定し、beforeShow
コールバックを使用してdata-caption
を取得します。
$(document).ready(function() {
$('.fancybox').fancybox({
beforeShow : function(){
this.title = $(this.element).data("caption");
}
});
}); // ready
これはtitle
をオーバーライドし、代わりにdata-caption
を使用します。
一方、title
属性を保持し、ファンシーボックスのtitle
を構築して、このHTMLに対してtitle
とdata-caption
属性の両方を組み合わせることもできます。
<a class="fancybox" href="images/01.jpg" title="This is the title" data-caption="This is the caption">Open fancybox</a>
このスクリプトを使用
$(document).ready(function() {
$('.fancybox').fancybox({
beforeShow : function(){
this.title = this.title + " - " + $(this.element).data("caption");
}
});
}); // ready
さらに、リンクまたは他のHTML要素を持つことができるドキュメント内の別のHTML要素(たとえば、caption/title
)から<div>
を取得することもできます。コード例については、これらの投稿を確認してください: https://stackoverflow.com/a/9611664/1055987 および https://stackoverflow.com/a/8425900/1055987
[〜#〜]注[〜#〜]:これはfancybox v2.0.6 +向けです
古い質問ですが、JFKの回答のおかげで、fancybox
の最新バージョンでは、title=""
属性に値を入力するだけでキャプションを追加できることがわかりました(デフォルト)。 fancybox
クラスの<a>
要素に含まれていることを確認してください。