1

現在、fancyboxv2を見ています。

ギャラリーをfancyboxでロードしようとしていますが、手動で呼び出します。ギャラリー画像をjquery経由でロードしたくないのですが、これはユーザーがギャラリーに画像を追加できるようにする必要があるCMSのテンプレートに追加されるため、htmlページからロードする方がよいでしょう。アップロードするすべての新しい画像にデータを入力します。

開始する前にオプションに呼び出しを追加するのと同じくらい簡単ですか、それとも画像のタグのhrefに呼び出しを追加するだけですか?

ありがとう、マーク

4

2 に答える 2

10

新しくロードされたすべての画像が、それらにリンクするアンカー内で同じ属性classを共有していることを確認してくださいrel

<a href="image01.jpg" class="fancybox" rel="gallery" ...

必要に応じて、これらのhtmlアンカーを非表示にdivすることができます。この投稿を参照してください。

次に、それらをfancyboxにバインドします

$(".fancybox").fancybox();

CMSを使用するとおっしゃっていたのでhref、読み込まれた画像の形式が次のようなものである場合 http://path/to/image/?abc=123(たとえば、画像の拡張子がない場合)type:"image"、スクリプトにオプションを追加します

$(".fancybox").fancybox({
 type:"image"
});

アンカーが表示されている場合は、それらのいずれかをクリックするとギャラリーが開始されます。

一方、ギャラリーを「手動で」開始するには、他のリンクを使用できます。

<a href="javascript:;" id="launcher">open gallery</a>

次のスクリプトを追加します。

$("#launcher").on("click", function(){
 $(".fancybox").eq(0).trigger("click");
});

この.eq()メソッドは、最初のアイテムからギャラリーを開始するために使用されます(ただし、どのような場合でもかまいません)。それ以外の場合、ギャラリーは最後に追加されたアイテムから開始されます。また、この.on()メソッドにはjQueryv1.7+が必要です

于 2012-05-31T17:11:21.073 に答える
5

古いjQueryバージョンを使用したい/使用する必要がある場合(たとえば、Drupalモジュールのため)、を削除し.on()て使用します

< a href="javascript:;" id="launcher">LINK TO TOPEN GALLERY< /a>

jQuery(document).ready(function($) {
    $("#launcher").click(function() {
        $(".imagefield-fancybox").eq(0).trigger("click");
    });
});

代わりは。

古いjQueryバージョンでも動作します。「.imagefield-fancybox」を使用しているクラスに置き換えます。

于 2012-11-15T18:36:29.043 に答える