jQuery animieren von CSS "oben" nach "unten"
Ich bin auf der Suche zu animieren, ein div-element aus eine absolute top-position zu einer absoluten unteren position auf der Seite zu laden.
Die Kombination von CSS und jQuery code unten nicht bewegt etwas:
CSS
#line-three {
position:absolute;
width:100%;
left:0px;
top:113px;
}
jQuery
$("#line-three").animate({
bottom: "100px",
}, 1200);
Danke für Eure Hilfe!
EDIT:
Ich habe versucht, es zu diesem (wie pro graphicdevine den Kommentaren), aber noch keine Zigarre:
var footerOffsetTop = $('#line-three').offset().bottom;
$('#line-three').css({position:'absolute',top:'',bottom:footerOffsetTop})
$("#line-three").delay(100).animate({
bottom: '100px',
}, 1200);
ok, hab den code. Sorry war nicht früher, sondern hatte sich zu trennen.
Ja, das scripted arbeitete für FF, aber nicht getestet im IE. Ich erschuf einen anderen, der nicht mit jquery ui, aber hatte zu tun, einige Optimierungen machen, damit es funktioniert.
offset().Unterseite nicht existiert, offset() nur die Renditen Eigenschaften top und left.
Ja, das scripted arbeitete für FF, aber nicht getestet im IE. Ich erschuf einen anderen, der nicht mit jquery ui, aber hatte zu tun, einige Optimierungen machen, damit es funktioniert.
offset().Unterseite nicht existiert, offset() nur die Renditen Eigenschaften top und left.
InformationsquelleAutor bravokiloecho | 2011-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kam ich irgendwann auf eine Lösung...
Grundsätzlich Sie animieren, von der alten
top
position zu einer anderen position relativ zu dertop
die Sie berechnen, indem Sie diewindow
Höhe und Subtraktion (1) die gewünschte position aus derbottom
, und (2) die Höhe von dem element, das Sie animieren möchten. Dann, am Ende der animation fügen Sie einen Rückruf zu ändern, die css-also als das element ist dann die position mit einem unteren Wert und einem oberenauto
WertHier ist das jQuery-Skript:
Sie sehe es in diesem jsFiddle
InformationsquelleAutor bravokiloecho
Können Sie mit der set-top:auto mit .css-Methode und dann animieren:
EDIT:
Spielst du mit der Größe des Körpers/Bildschirm und konvertieren top-position nach unten positionieren und animieren Sie dann auf die gewünschte untere position:
})
Beispiel: http://jsfiddle.net/reWwx/4/
Von oben nach unten auf dem Bildschirm? Oder hinsichtlich der relativen element, enthält es?
Mit Bezug auf dem Bildschirm.
siehe mein edit, hoffe, dass ist hilfreich
Das ist wirklich clever, danke. Das problem ist nur, dass ich nicht glaube, dass die animation startet am gleichen Ausgangspunkt (ie, 113px), wenn die browser-Größe ändert...
InformationsquelleAutor davidmatas
Vielleicht würde dies helfen?
Vollständige code:
http://jsfiddle.net/yyankowski/jMjdR/
InformationsquelleAutor Yan Yankowski
Wenn Sie wollen, animieren Sie tun sollten:
Fiddle hier: http://jsfiddle.net/nicolapeluchetti/xhHrh/
InformationsquelleAutor Nicola Peluchetti
Animieren Sie es mit diesem:
Überprüfen Sie heraus dieses JSFiddle:
Dies animiert den div 300px aus seiner absoluten position, wo immer das ist. Also in diesem Fall 300px vom oberen Rand der Seite. Also, wenn Sie wollte, um es nach unten 100px, Sie würde unten verschieben 113px + 100px, sorry, my bad, ich verstehe, was Sie nun tun möchte.
Ja, es ist schwierig! Aber vielen Dank für deine Zeit.
InformationsquelleAutor Anil
$("#line-three").css({position:'absolute',top:'auto',bottom:'100px'})
Das sollte es tun. Sie wahrscheinlich brauchen, um Bedenken Sie die " top " - Wert auf auto
BEARBEITEN
Animieren, die Sie verwenden müssen .animieren();
Versuchen Sie dies:
$("#line-three").animate({position:'absolute',top:'auto',bottom:'100px'}, 400)
Schau mein edit
Ihre Bearbeitung entspricht nun graphicdevine Antwort (oben). Und das funktioniert nicht, leider.
InformationsquelleAutor peduarte
Möglicherweise:
BEARBEITEN
Ja, das wird kniffliger, als es zunächst scheint. Sie müssen möglicherweise analysieren Sie die derzeitige position relativ zum er-container (mit
offset
) und von dort aus arbeiten.Danke für die Anregung. Ich werde das prüfen. Offensichtliche Vorschläge, wie zu beginnen, Verwendung von offset?
siehe mein edit. irgendwelche Vorschläge?
InformationsquelleAutor graphicdivine
EDIT: hatte zu verlassen, so schnell nicht fertig, ich habe mich für jquery ui-Beispiel (Sie brauchen Kern):
http://jsfiddle.net/syVzK/1/ (geändert Kippschalter zu verhindern, über die animation)
Ich wie einige andere Vorschläge auch.
EDIT2: Gerade getestet in IE... es funktioniert komischerweise. Vielleicht haben Sie zu tun, gerade weil der merkwürdiges Verhalten im IE mit Jquery UI-Schalter-Klasse.
EDIT3:
Ok, ich habe diese Arbeit für IE und im FF... Einige Hinweise. Die +20 zu halten, ist es von springen. Der test für innerHeight 0 ist im Falle Höhe nicht für das element gesetzt ist (oder Körper), also, wenn es in ein div, positioniert ist, dann set Höhe.
Auch diese funktionierte nicht in jsfiddle, arbeitete aber auf einer regulären Webseite. Vermeiden Sie, jsfiddle.
Ich habe es funktioniert (edit3) in ie und ff, aber nicht bekommen konnte offsetParent (), um die Arbeit in jsfiddle, es muss also geprüft werden, ohne dass es. Nicht sicher, was wirft es Weg, aber nicht bereit, zu verfolgen, down im moment.
InformationsquelleAutor craniumonempty
Können Sie den aktuellen Wert unten über: css('bottom'). Dies funktioniert für mich (jQuery1.7.2):
InformationsquelleAutor T. Christiansen