Suivez les fils RSS
 

Des livres incontournables pour tout maîtriser

  • CSS avancées - vers HTML5 et CSS3
  • HTML5
  • CSS2
  • PHP5 avanc�
  • Memento MySQL
  • Memento CSS 3
  • Memento XHTML
  • WordPress 3 100% pratique
  • jQuery et jQuery UI
Auteur
aelor
#
Citer
56 Posts
Bonjour à tous.

J'essaie de récupérer la position d'un élément après qu'il ai bougé via animate().

Le code html:

<header>
		<div id="visible">
			<div id="slides" style="top: -447px;">
				<div id="slide_4" class="banner">
				
				</div>
				<div id="slide_3" class="banner">
				
				</div>
				<div id="slide_2" class="banner">
				
				</div>
				<div id="slide_1" class="banner">
				
				</div>
			</div>
		</div>  <!-- End of #visible   -->
	</header>


Et le code javascript

var n = $('#slides').position();
	
		function deplacement(){
			for(i=0; i<=150; i++){
				if(n.top == '0'){
					$('#slides').delay(2000).animate({
						top: '-=447'
					}, 1000)
				}else{
					$('#slides').delay(2000).animate({
						top: '+=149'
					}, 1000, function(){
						alert (n.top);
					})
					
				}
			}
		};
		
		deplacement();


Voilà donc en gros j'ai un bloc dans lequel défilent, à intervalle de 2s, des bannieres, de haut en bas.
J'essaie de récupérer la valeur 'top' du bloc qui contient les bannières pour dire à celui-ci de remonter à sa position de départ quand il est arrivé en bout de course. Le problème c'est qu'avec toutes les méthodes que j'ai essayé, je récupère la position définie au départ (soit -447px).
Y a t-il un moyen de récupérer la valeur top après le déplacement?

Merci de vos conseils. smile

http://www.thomasneels-webdesign.fr 
^
Steakmout
#
Citer
5 Posts
Tu dois pouvoir définir une variable au début genre :

var currentPosition = 1;
var slides = $('.banner');
var slidesCount = slides.length();


Que tu incrémentes à chaque exécution de la fonction deplacement()
Ensuite, dans la boucle tu lui ajoutes une condition :

if(currentPosition == slidesCount) {
	$('#slides').delay(2000).animate({top: '-447px'}, 1000);
}


Adrien A.

http://www.adrien.cellulecreative.com/ 
^
kustolovic
#
Citer
553 Posts
Tu as une fonction qui se déclenche lorsque l'animation est terminée, tu as la position de départ et tu connais la distance parcourue.

Ta nouvelle position est tout simplement une addition/soustraction entre ces deux dernières valeurs. De plus, si tu vérifies une fois l'animation complétée, tu auras bien la valeur actuelle...

^
aelor
#
Citer
56 Posts
Ah yes. Merci pour ces deux réponses, aussi intéressantes l'une que l'autre.

Pour la soustraction, j'aurais du y penser... confus

Merci à vous deux.

http://www.thomasneels-webdesign.fr 
^