jQuery anime de CSS "top" à "bottom"
Je suis à la recherche d'animer un élément div à partir d'une absolue de la position absolue de la position inférieure sur le chargement de la page.
La combinaison de la CSS et de jQuery code ci-dessous ne parvient pas à déplacer quoi que ce soit:
CSS
#line-three {
position:absolute;
width:100%;
left:0px;
top:113px;
}
jQuery
$("#line-three").animate({
bottom: "100px",
}, 1200);
Merci pour votre aide!
EDIT:
J'ai essayé de le changer (comme par graphicdevine suggestions), mais toujours pas de cigare:
var footerOffsetTop = $('#line-three').offset().bottom;
$('#line-three').css({position:'absolute',top:'',bottom:footerOffsetTop})
$("#line-three").delay(100).animate({
bottom: '100px',
}, 1200);
source d'informationauteur bravokiloecho
Vous devez vous connecter pour publier un commentaire.
J'ai finalement trouvé une solution...
Fondamentalement, vous animer à partir de l'ancien
top
position à une autre position par rapport à latop
qui vous calculer en prenant lewindow
de la hauteur et de la soustraction (1) la position désirée à partir de labottom
et (2) la hauteur de l'élément que vous souhaitez animer. Puis, à la fin de l'animation ajouter un rappel pour modifier le css de sorte que l'élément est alors en position avec une valeur du bas et un hautauto
valeurVoici le script jQuery:
Vous pouvez le voir travailler dans ce jsFiddle
Vous pouvez définir supérieur:auto avec .méthode css et puis d'animer:
EDIT:
Vous pouvez jouer avec la taille du corps/de l'écran et de convertir de la position haute à la position basse, puis animer souhaité la position inférieure:
})
Exemple: http://jsfiddle.net/reWwx/4/
Peut-être que ce serait aider?
Code complet:
http://jsfiddle.net/yyankowski/jMjdR/
Si vous souhaitez animer que vous devez faire:
Violon ici: http://jsfiddle.net/nicolapeluchetti/xhHrh/
Vous pouvez l'animer à l'aide de ceci:
Découvrez ce JSFiddle:
$("#line-three").css({position:'absolute',top:'auto',bottom:'100px'})
Cela devrait le faire. Vous avez probablement besoin de reser le " top " de la valeur de l'auto
MODIFIER
Pour animer, vous devez utiliser .animate();
Essayez ceci:
$("#line-three").animate({position:'absolute',top:'auto',bottom:'100px'}, 400)
Éventuellement:
MODIFIER
Oui, cela va être plus compliqué qu'il n'y paraît. Vous aurez peut-être besoin d'analyser sa position actuelle par rapport à son conteneur (à l'aide de
offset
) et de travailler à partir de là.EDIT: a partir rapidement afin de ne pas arriver à terminer, j'ai décidé d'utiliser jquery ui pour l'exemple (vous avez besoin de base):
http://jsfiddle.net/syVzK/1/ (modifié interrupteur à bascule pour éviter d'animation)
J'ai comme quelques autres suggestions.
EDIT2: Viens de tester sous IE... il fonctionne bizarrement. Peut-être ne droite en raison d'un comportement étrange dans IE avec Jquery UI commutateur de classe.
EDIT3:
Ok, j'ai eu ce travail pour IE et FF... Quelques notes. Le +20 est pour l'empêcher de sauter. Le test pour innerHeight de 0 est dans le cas où la hauteur n'est pas défini pour l'élément (ou le corps), donc si c'est dans une div qui est placé, puis régler la hauteur.
Aussi, ce n'a pas de travail dans jsfiddlemais il a travaillé régulièrement sur une page web. Éviter, jsfiddle pour cela.
Vous pouvez définir le fond actuel de la valeur via: css('bas'). Cela fonctionne pour moi (jQuery1.7.2):