Partage
  • Partager sur Facebook
  • Partager sur Twitter

trouver position : boucle?

Sujet résolu
    24 mars 2011 à 22:44:58

    Salut ;)

    pourquoi on a besoin de la fonction while ici, pour trouver la position de obj ?
    Je comprend pas l'intérêt de la boucle ici :

    //function to find element Position
    	function findPos(obj) {
    		var curleft = curtop = 0;
    		if (obj.offsetParent) {
    			curleft = obj.offsetLeft
    			curtop = obj.offsetTop
    			while (obj = obj.offsetParent) {
    				curleft += obj.offsetLeft
    				curtop += obj.offsetTop
    			}
    		}
    		return [curtop, curleft];
    	}
    
    • Partager sur Facebook
    • Partager sur Twitter
      24 mars 2011 à 22:59:13

      offsetLeft ou offsetTop ne donne la position de l'élément que par rapport à son parent (de positionnement).
      Ainsi si tu as un élément qui est positionné par rapport à la page alors il n'y a pas de soucis mais si ton élément est dans un autre élément qui est lui-même dans un autre etc... tu es obligé de calculer la position de chaque élément par rapport à leur "parent" respectif jusqu'à remonter eu premier élément.
      La boucle sert justement à remonter tous les éléments.

      Bon en fait ton code n'est pas tout à fait bon car il ne prend pas en compte les scroll éventuels...
      • Partager sur Facebook
      • Partager sur Twitter

      trouver position : boucle?

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown