Ich weiß, dass dies für einige von euch einfach ist, also bitte hilf mir! Ich habe 3 Panels (divs), die ich nacheinander von einem Klick auf eine Schaltfläche schieben möchte. Ein Panel zu schieben ist einfach, aber wie werden mehrere Divs nacheinander verschoben? Danke.jQuery: Schiebepaneele nacheinander
Antwort
Obwohl ich wirklich wie Kane's solution, können Sie es etwas schwer zu verstehen, wenn Sie nicht wissen, ‚anonyme Funktionen‘ und arguments.callee Funktionen von JavaScript-Sprache .
Nach funktioniert auch:
$('#slideDiv').click(
function(e)
{
e.preventDefault();
var i = -1;
var divList = $(".slide");
var animationCallback = function()
{
if(++i < divList.length)
$(divList[i]).slideUp('slow', animationCallback);
//Replace 'slideUp' with any other animation of your choice. Make sure to pass 'animationCallback' as the last parameter.
//e.g. you can do
//$(divList[i]).animate({ left : '300px'}, 100, 'linear', animationCallback);
};
animationCallback();
}
);
EDIT:
aktualisiert Demo-Seite. Kommentar zur Verwendung verschiedener Animationen hinzugefügt
Ihr seid großartig. 30 Minuten und schau was schon gemacht wurde! Anyhoo, du hast recht, ich verstehe keine anonymen Funktionen usw. Wenn ich mir deinen Code ansehe, denke ich, dass die Länge der Liste bestimmt, wann mit der Animation des nächsten div begonnen wird? Was, wenn ich die Divs horizontal von rechts nach links schieben wollte? – lnvrt
Länge der Liste bestimmt, ob eine weitere Animation sequenziert werden muss. Z.B. Der obige Code funktioniert, wenn Sie das vierte div mit der Klasse 'slide' hinzufügen. Es animiert das 4. div, nachdem das 3. animiert wurde. Und wenn Sie eine andere Animation wünschen, ändern Sie die 'SlideUp'-Methode mit der entsprechenden Methode. Lassen Sie mich den Code bearbeiten, um Ihnen zu zeigen, wie. – SolutionYogi
ich ein bisschen CSS hinzugefügt http://jsbin.com/adaca/edit // macht es ein bisschen klarer ... – lnvrt
Geben Sie den 3 Divs eine Klasse ".slide_panel", diese wird durch sie durchlaufen und die Animation darauf ausführen.
$("#button").click(function()
{
var i = -1;
var arr = $(".slide_panel");
(function(){
if(arr[++i])
$(arr[i]).animate({ left: "300px" }, 100, "linear", arguments.callee)
})();
});
+100, Ausgezeichnete Verwendung von arguments.callee! Hier ist die funktionierende Demoseite. http://jsbin.com/utebe Ich dachte, dies könnte dem Autor helfen zu verstehen, wie die DIVs strukturiert werden sollen. – SolutionYogi
Ich habe Ihren Beitrag bearbeitet, um den Link zur Demo-Seite hinzuzufügen, ich hoffe, es macht Ihnen nichts aus. – SolutionYogi
Ich würde die if-Bedingung nur etwas anders schreiben. if (++ i
- 1. Trigger jQuery Ereignisse nacheinander
- 2. Ausführen von Methoden nacheinander und nacheinander
- 3. animateWithDuration nacheinander
- 4. Blättern mit Mauszeiger nacheinander
- 5. Wie können jQuery-Effekte nacheinander und nicht gleichzeitig ausgeführt werden?
- 6. Herunterladen von Dateien nacheinander
- 7. Docker Download Schichten nacheinander
- 8. TestNG laufen Tests nacheinander
- 9. Android Animation nacheinander
- 10. Laufaufträge nacheinander in Jenkins
- 11. Tasten werden nacheinander sichtbar
- 12. Sellerie Verkettung Aufgaben nacheinander
- 13. Mehrere Aktionen nacheinander ausführen
- 14. JavaScript Bilder nacheinander zeigen
- 15. Zeige mehrere AlertDialog nacheinander
- 16. zwei MPI-Broadcasts nacheinander
- 17. animiere 3 Ansichten nacheinander
- 18. MediaElements nacheinander wiedergeben UWP
- 19. Asynctask mehrmals nacheinander ausgeführt
- 20. Zwei Aufgaben nacheinander ausführen
- 21. Anzeige von NSAlert-Blattmodellen nacheinander
- 22. iOS: Animieren mehrerer UIBezierPfade (nacheinander)?
- 23. AVAudioPlayer - Abspielen mehrerer Audiodateien nacheinander
- 24. Wie lua nacheinander zu laufen
- 25. Access-Tags in JSP nacheinander
- 26. Führen Sie Sh-Skripte nacheinander
- 27. Iterieren über zwei Listen nacheinander
- 28. Ajax Concurrent Call wird nacheinander ausgeführt
- 29. Video nacheinander nacheinander abspielen [ohne sichtbares Umschalten von einem zum anderen]
- 30. Wie können Sie JavaScript-Timeouts nacheinander statt parallel ausführen?
Wir müssen wirklich Code sehen, um Ihnen ein funktionierendes Beispiel zu geben. – Sneakyness