Pikachoose / Fancybox Integration - Navigationspfeile auf dem Leuchtkasten

6

Ich verwende die Fancybox-Integration mit Pikachoose wie hier erklärt: Ссылка

Ich versuche, die Lightbox dazu zu bringen, die nächsten und vorherigen Pfeile anzuzeigen, aber nicht auf der Pikachoos-Stufe, und ich habe ein paar Probleme. Ich habe versucht, die Optionen von showNavArrows: true im fancybox-Abschnitt des Skripts hinzuzufügen, aber es würde nicht funktionieren. Also habe ich versucht die Nav Optionen auf Pikachoose mit this: {text: {previous: "Previous", next: "Next" }} anzuzeigen aber ich bekomme immer einen Fehler, möglicherweise ist meine Syntax nicht am richtigen Ort? Kann mir bitte jemand helfen?

Dies ist der Code, den ich verwende:

%Vor%     
missLele 15.04.2013, 23:11
quelle

2 Antworten

6

Das Problem mit der Methode, die in Ссылка erklärt wird, ist, dass Sie fancybox an die aktuelle pikachoose binden Element self.anchor .

Bei diesem Ansatz gibt es keine Möglichkeit zu wissen, welche Gruppe von Bildern zu einer Fancybox-Galerie gehört (Sie benötigen mehr als ein Element, das das gleiche rel -Attribut teilt), da es nur eine einzige Pikachoose image: Jedes Bild wird dynamisch angezeigt, indem die Attribute href und src im <a> -Container ( <img> bzw. .pika-stage -Tags) dynamisch umgeschaltet werden.

Um das Problem zu umgehen, müssten Sie die fancybox-Gruppe von Elementen BEFORE erstellen, die Ihre HTML-Struktur an pikachoose bindet ( pikachoose ändert die DOM-Struktur)

1). Also mit dieser HTML-Struktur:

%Vor%

2). Erstellen Sie die fancybox-Gruppe von Elementen, die mit diesem Skript durch jeden Anker iterieren:

%Vor%

3). Dann binden Sie pikachoose an denselben Selektor #pikame . Sie können die .end() -Methode verwenden, um es über den ersten verzögerten Selektor zu tun, ohne es zu duplizieren;)

%Vor%

Beachten Sie, dass wir die Option pikachoose buildFinished: fancy verwendet haben, die die fancybox-Galerie auslöst, wenn wir auf das große Bild klicken.

4). Hier ist die Funktion:

%Vor%

Beachten Sie, dass wir ein click -Ereignis mit .on() (erfordert jQuery v1.7 +) an das pikachoose -Element self.anchor gebunden haben, um die fancybox-Galerie mit zu starten die manuelle Methode $.fancybox([group]) .

Diese Problemumgehung funktioniert bei fancybox v1.3.4 oder v2.x genauso gut. Siehe DEMO mit Version 1.3.4, das auch mit IE7 einwandfrei funktioniert; )

    
JFK 16.04.2013 21:39
quelle
0

JFK-Antwort ist großartig, aber es gibt etwas zu korrigieren:

Wenn Karussell in Pikachoose aktiviert ist, wird der berechnete Index, der diese Methode verwendet, Ihnen einen ungültigen geben, da Pikachoose DOM manipuliert, indem er vorhandenes li in ul anfügt:

%Vor%

Lösung:

%Vor%     
Halayem Anis 23.01.2016 10:41
quelle