Ich möchte beim Laden einer Seite eine Fancybox (z. B. die Fancybox- Version einer Modal- oder Light-Box) starten . Ich könnte es an ein verstecktes Ankertag binden und das Klickereignis dieses Ankertags über JavaScript auslösen, aber ich würde die Fancybox lieber direkt starten und das zusätzliche Ankertag vermeiden.
jquery
jquery-plugins
fancybox
Blegger
quelle
quelle
Antworten:
Fancybox unterstützt derzeit keine Möglichkeit zum automatischen Starten. Die Arbeit, an der ich arbeiten konnte, besteht darin, ein verstecktes Ankertag zu erstellen und das Klickereignis auszulösen. Stellen Sie sicher, dass Ihr Aufruf zum Auslösen des Klickereignisses enthalten ist, nachdem die JS-Dateien jQuery und Fancybox enthalten sind. Der Code, den ich verwendet habe, lautet wie folgt:
Dieses Beispielskript ist direkt in HTML eingebettet, kann aber auch in eine JS-Datei aufgenommen werden.
quelle
$(document).ready(LaunchFancyBox());
sein sollte$(document).ready(LaunchFancyBox);
. (Beachten Sie das Fehlen des Funktionsaufrufs am Ende).Ich habe dies zum Laufen gebracht, indem ich diese Funktion in document ready aufgerufen habe:
quelle
Es ist einfach:
Machen Sie Ihr Element zuerst so versteckt:
Rufen Sie dann Ihr Javascript auf:
Schauen Sie sich das Bild unten an:
Ein anderes Beispiel:
quelle
Window.load (im Gegensatz zu document.ready ()) scheint der Trick zu sein, der in den JSFiddler-Onload-Demos von Fancybox 2.0 verwendet wird :
Bedenken Sie jedoch, dass Sie document.ready () möglicherweise an anderer Stelle verwenden und IE9 sich über die Ladereihenfolge der beiden aufregt. Sie haben also zwei Möglichkeiten: Ändern Sie alles in window.load oder verwenden Sie einen setTimer ().
quelle
Oder verwenden Sie dies in der JS-Datei, nachdem Ihre Fancybox eingerichtet wurde:
Ich glaube, dass Fancybox 1.2.1 ansonsten Standardoptionen aus meinen Tests verwendet, wenn ich dies tun musste.
quelle
Warum ist das noch keine der Antworten?:
Jetzt einfach deinen Link auslösen !!
habe das von der Fancybox Homepage bekommen
quelle
Der beste Weg, den ich gefunden habe, ist:
quelle
In meinem Fall kann Folgendes erfolgreich funktionieren. Wenn die Seite geladen wird, wird der Leuchtkasten sofort eingeblendet.
JQuery: 1.4.2
Fancybox: 1.3.1
quelle
Alex 'Antwort ist großartig. Es ist jedoch wichtig zu beachten, dass dies den Standard-Fancybox-Stil aufruft. Wenn Sie Ihre eigenen benutzerdefinierten Regeln haben, sollten Sie einfach .trigger aufrufen und auf diesen bestimmten Anker klicken
quelle
Ich habe es tatsächlich geschafft, einen FancyBox-Link nur aus einer externen JS-Datei mithilfe des "Live" -Ereignisses auszulösen:
Fügen Sie zunächst das Live-Klickereignis zu Ihrem zukünftigen dynamischen Anker hinzu:
Fügen Sie dann den Anker an den Körper an:
Dann lösen Sie die FancyBox aus, indem Sie auf den Anker "klicken":
Der FancyBox-Link ist jetzt "fast" fertig. Warum "fast"? Da Sie anscheinend eine Verzögerung hinzufügen müssen, bevor Sie den zweiten Klick auslösen, ist das Skript sonst nicht bereit.
Es ist eine schnelle und schmutzige Verzögerung mit einigen Animationen auf unserem Anker, aber es funktioniert gut:
Los geht's, deine FancyBox sollte aufgeladen erscheinen!
HTH
quelle
Vielleicht hilft dies ... dies wurde im jQuery-Kalender- Klickereignis in voller Größe ( http://arshaw.com/fullcalendar/ ) verwendet ... aber es kann allgemeiner verwendet werden, um mit der von jQuery gestarteten Fancybox umzugehen.
quelle
Sie können auch die native JavaScript-Funktion verwenden
setTimeout()
, um die Anzeige der Box zu verzögern, nachdem das DOM bereit ist.quelle
Falls Sie keine Schaltfläche zum Klicken haben. Ich meine, wenn Sie es auf Ajax-Antwort öffnen möchten, dann wäre es so:
quelle
Das wird helfen..
quelle
Sie können einen Link wie diesen einfügen (er wird ausgeblendet. Kann vorher sein
</body>
)Und arbeiten rel Attribut oder Klasse wie diese
Tun Sie es einfach mit der jquery-Triggerfunktion
quelle
HTML:
JS:
quelle
Vielleicht können Sie jqmodal verwenden , es ist leicht und einfach zu bedienen. Sie können die Modalbox durch Aufrufen anzeigen
quelle