Sie können auch hinzufügen, paddingLeft: 'toggle', paddingRight: 'toggle'wenn das Element über eine interne Auffüllung verfügt.
piotr_cz
17
Funktioniert gut, nur es gleitet von links nach rechts, wenn ich es versuche. Ist es möglich, es umgekehrt zu animieren?
Twan
2
Das einzige Problem ist, dass Inhalte, die sich darin befinden, horizontal "gequetscht" werden, wodurch sich die Steuerelemente bewegen / die Größe ändern / umbrechen usw. Gibt es eine gute Lösung dafür?
Neil Barnwell
1
Ihr Code braucht mehr CSS, um wie eine echte Folie links
auszusehen
1
@NeilBarnwell, wenn Sie können, legen Sie den Inhalt in eine Hülle mit fester Breite und haben Sie die Container overflow: hidden.
Ben Philipp
239
Dies kann nativ mit den jQueryUI-Methoden zum Ausblenden / Anzeigen erreicht werden. Z.B.
// To slide something leftwards into view,// with a delay of 1000 msec
$("div").click(function(){
$(this).show("slide",{ direction:"left"},1000);});
@ekerner - Dies erfordert JQueryUI, eine riesige Bibliothek. Wenn alles, was Sie wollen, ein einfacher Folienübergang ist, ist dies wahrscheinlich nicht die Antwort;)
Jesse
9
Dies ist der beste Weg, wenn Sie jQueryUI installiert haben.
Steampowered
5
Zur Verdeutlichung - die min-Datei ist mindestens 235kb !! Dies ist gut, aber es wird Ihre Seite erheblich erweitern, wie @Jesse betont
Ukuser32
1
Wenn Sie den benutzerdefinierten Builder verwenden und alles außer der Folienanimation entfernen, ist es möglich, die minimierte JS unter 20 KB zu bringen.
Skylar Ittner
Ich wünschte, die JQuery-UI-Dokumente hätten Beispiele wie dieses. Danke
Berechnet Werte in 'px', also nicht machbar für '%'
Faisal Ashfaq
es bewegt sich bei jedem Klick nach links.
Elyor
Sie könnten die äußere Breite überprüfen und diese verwenden, um den rechten Rand hinzuzufügen
Tofandel
22
Schauen Sie sich dieses Arbeitsbeispiel für Fiddle an, das die jQuery-Benutzeroberfläche verwendet . Es ist eine Lösung, die ich ursprünglich von links nach rechts verwendet habe, aber ich habe sie so geändert, dass sie von rechts nach links funktioniert.
Der Benutzer kann schnell auf Links klicken, ohne die Animation zwischen den verfügbaren Bedienfeldern zu unterbrechen.
Der JavaScript-Code ist einfach:
$(document).ready(function(){// Mostra e nascondi view-newsvar active ="europa-view";
$('a.view-list-item').click(function(){var divname=this.name;
$("#"+active ).hide("slide",{ direction:"right"},1200);
$("#"+divname).delay(400).show("slide",{ direction:"right"},1200);
active = divname;});});
Holen Sie sich HTML und CSS unter dem Link Fiddle.
Weißer Hintergrund und Linksauffüllung hinzugefügt, um eine bessere Effektdarstellung zu erzielen.
Warum nicht verwenden width: 'toggle'? btn.show().animate({width: 'toggle'}, {duration: 500});ist alles was du brauchst, glaube ich.
Aart den Braber
6
Eine weitere erwähnenswerte Bibliothek ist animate.css . Es funktioniert hervorragend mit jQuery, und Sie können viele interessante Animationen erstellen, indem Sie einfach die CSS-Klassen umschalten.
Die GreenSock Animation Platform (GSAP) mitTweenLite/TweenMaxbietet viel flüssigere Übergänge mit weitaus größerer Anpassungsfähigkeit als jQuery- oder CSS3-Übergänge. Um CSS-Eigenschaften mit TweenLite / TweenMax zu animieren, benötigen Sie auch das Plugin "CSSPlugin". TweenMax schließt dies automatisch ein.
Laut ihrer Website:
"TweenLite ist ein extrem schnelles, leichtes und flexibles Animationstool, das als Grundlage für die GreenSock Animation Platform (GSAP) dient."
Ein Beispiel für eine Animation von rechts nach links ohne jQuery-Benutzeroberfläche , nur mit jQuery (jede Version, siehe https://api.jquery.com/animate/ ).
<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><divclass="wrap">
click here
<divclass="content">
I would like to have a div go from collapsed to expanded (and vice versa), but do so from right to left. Most everything I see out there is always left to right.
</div></div>
Wenn Sie eine zehn Jahre alte Frage mit vierzehn anderen vorhandenen Antworten beantworten, ist es hilfreich zu erklären, welchen neuen Ansatz Ihre Antwort bringt und ob sie gültig gewesen wäre, als die Frage gestellt wurde, oder ob Techniken verwendet wurden, die in diesen zehn Jahren verfügbar wurden .
Jason Aller
1
Ein Beispiel, das ich mit der Schriftrolle gemacht habe (nur HTML, CSS und JS, nur mit der jquery-Bibliothek). Wenn Sie nach unten scrollen, wird eine Schaltfläche nach links verschoben.
Außerdem empfehle ich Ihnen, wenn der einzige Effekt, den Sie möchten, diesen Effekt nicht die jQuery-Benutzeroberfläche verwendet, da er zu schwer ist (wenn Sie ihn nur dafür verwenden möchten).
Antworten:
Referenz: https://api.jquery.com/animate/
quelle
paddingLeft: 'toggle', paddingRight: 'toggle'
wenn das Element über eine interne Auffüllung verfügt.CSS
, um wie eine echte Folie linksoverflow: hidden
.Dies kann nativ mit den jQueryUI-Methoden zum Ausblenden / Anzeigen erreicht werden. Z.B.
Referenz: http://docs.jquery.com/UI/Effects/Slide
quelle
Benutze das:
Live-Demo
Verbesserte Version
Der Demo wurde Code hinzugefügt, um einen doppelten Rand beim Doppelklick zu vermeiden: http://jsfiddle.net/XNnHC/942/
Verwenden Sie es mit Lockerung;)
http://jsfiddle.net/XNnHC/1591/
Zusätzliche JavaScript-Codes entfernt.
Klassennamen und einige CSS-Codes geändert
Funktion hinzugefügt, um festzustellen, ob sie erweitert oder reduziert ist
Es wurde geändert, ob der Lockerungseffekt verwendet wird oder nicht
Animationsgeschwindigkeit geändert
http://jsfiddle.net/XNnHC/1808/
quelle
Schauen Sie sich dieses Arbeitsbeispiel für Fiddle an, das die jQuery-Benutzeroberfläche verwendet . Es ist eine Lösung, die ich ursprünglich von links nach rechts verwendet habe, aber ich habe sie so geändert, dass sie von rechts nach links funktioniert.
Der Benutzer kann schnell auf Links klicken, ohne die Animation zwischen den verfügbaren Bedienfeldern zu unterbrechen.
Der JavaScript-Code ist einfach:
Holen Sie sich HTML und CSS unter dem Link Fiddle.
Weißer Hintergrund und Linksauffüllung hinzugefügt, um eine bessere Effektdarstellung zu erzielen.
quelle
Benutze das
quelle
quelle
Ich habe es so gemacht:
Beachten Sie, dass der Knoten "btn" vor der Animation ausgeblendet werden sollte und Sie möglicherweise auch "position: absolute" festlegen müssen.
quelle
width: 'toggle'
?btn.show().animate({width: 'toggle'}, {duration: 500});
ist alles was du brauchst, glaube ich.Eine weitere erwähnenswerte Bibliothek ist animate.css . Es funktioniert hervorragend mit jQuery, und Sie können viele interessante Animationen erstellen, indem Sie einfach die CSS-Klassen umschalten.
Mögen..
quelle
Die GreenSock Animation Platform (GSAP) mit
TweenLite
/TweenMax
bietet viel flüssigere Übergänge mit weitaus größerer Anpassungsfähigkeit als jQuery- oder CSS3-Übergänge. Um CSS-Eigenschaften mit TweenLite / TweenMax zu animieren, benötigen Sie auch das Plugin "CSSPlugin". TweenMax schließt dies automatisch ein.Laden Sie zunächst die TweenMax-Bibliothek:
Oder die leichte Version TweenLite:
Rufen Sie dann Ihre Animation auf:
Sie können es auch mit einem ID-Selektor aufrufen:
Wenn Sie jQuery geladen haben, können Sie erweiterte breite Selektoren verwenden, wie alle Elemente, die eine bestimmte Klasse enthalten:
Ausführliche Informationen finden Sie unter: TweenLite-Dokumentation
Laut ihrer Website: "TweenLite ist ein extrem schnelles, leichtes und flexibles Animationstool, das als Grundlage für die GreenSock Animation Platform (GSAP) dient."
quelle
Sie können zuerst die Breite des Elements als 0 definieren, rechts schwebend und dann für den Fall, dass Sie es anzeigen möchten. Es wäre wie
So einfach ist das.
quelle
Ein Beispiel für eine Animation von rechts nach links ohne jQuery-Benutzeroberfläche , nur mit jQuery (jede Version, siehe https://api.jquery.com/animate/ ).
quelle
Überprüfen Sie das Beispiel hier.
https://jsfiddle.net/q1pdgn96/2/
quelle
oder du kannst verwenden
quelle
Ein Beispiel, das ich mit der Schriftrolle gemacht habe (nur HTML, CSS und JS, nur mit der jquery-Bibliothek). Wenn Sie nach unten scrollen, wird eine Schaltfläche nach links verschoben.
Außerdem empfehle ich Ihnen, wenn der einzige Effekt, den Sie möchten, diesen Effekt nicht die jQuery-Benutzeroberfläche verwendet, da er zu schwer ist (wenn Sie ihn nur dafür verwenden möchten).
Überprüfen Sie dieses Beispiel
quelle
Wenn Sie
div
absolut positioniert sind und die Breite kennen, können Sie einfach Folgendes verwenden:Welches wird es vom Bildschirm schieben.
Alternativ können Sie auch einen Behälter einwickeln
div
quelle