IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Débutant. Comment récupérer une hauteur pour positionner un élément


Sujet :

jQuery

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 099
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 099
    Points : 946
    Points
    946
    Par défaut Débutant. Comment récupérer une hauteur pour positionner un élément
    Bonjour,
    J'essaye de faire un truc pas trop compliqué, mais sans succès.

    J'aimerai faire en sorte qu'un élément soit placé à la même hauteur qu'un autre, qui se trouve tous les deux, dans deux colonne différente d'un tableau.

    J'ai donc fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    align_to('id_1','id_2');
    function align_to(source,target){ 
    // source est l'id d'un h2 ou d'un div ou de n'importe quel élément
    // target est l'id d'un autre élément devant se trouver à la meme auteur
     
    alert(source+'-'+target);  //Ceci m'affiche bien les deux id
    // Si je ne me trompe pas, ceci va voir si l'id_1 existe
    		if($(source).length>=1){
    			source_height=$(source).offset().top;
    			alert(source_height);
    		}
    		else
    		{alert('erreur, id existe pas')}
    };
    1) Mon problèe, c'est
    alert(source_height);
    n'est pas exécuté. Soit la condition
    if($(source).length>=1){
    n'est pas respectée.

    2) Comment puis-je position le deuxième élément, après avoir récupéré la hauteur du premier?

    Milles mercis

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    $, ça vient de quelle bibliothèque ? (A vue de nez, je dirais Prototype...)

  3. #3
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Bonjour,
    Citation Envoyé par pierrot10 Voir le message
    1) Mon problèe, c'est n'est pas exécuté. Soit la condition n'est pas respectée.
    Ou bien, une erreur survient entre temps

    Citation Envoyé par Bovino Voir le message
    $, ça vient de quelle bibliothèque ? (A vue de nez, je dirais Prototype...)
    Si c'est bien prototype, la méthode offset n'existe pas ; au choix cumulativeOffset, viewportOffset ou positionedOffset. Tu choisiras le bon en fonction du style absolute ou relative de target et source

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, en fait, ce serait plutôt jQuery...
    Ceci dit, dans un cas comme dans l'autre, $() n'a pas à priori de propriété length

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 099
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 099
    Points : 946
    Points
    946
    Par défaut
    Ben en fait je me suis inspiré d'un autre code qui utilise jQuery.
    Si je dois utiliser une librairire c'est celle-là que je souhaite utiliser et que j'utilise déjà, d'ailleur

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 099
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 099
    Points : 946
    Points
    946
    Par défaut
    Je me suis inspiré de ce code (qui fonctionne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $(document).ready(function(){
    	$('a[href^=#]').click(function(){
    		cible=$(this).attr('href');
    		if($(cible).length>=1){
    			hauteur=$(cible).offset().top;
    		}
    		else{
    			hauteur=$("a[name="+cible.substr(1,cible.length-1)+"]").offset().top;
    		}
    		$('html,body').animate({scrollTop:hauteur},1000)
    		return false;
     
    	});
    });
    et j'aimerais l'adapter pour récupérer la hauteur d'un id pour l'utiliser afin de position un autre

    je ne sais pas si j'ai bien fait d'emlever le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).ready(function(){...
    car en fait j'ai pas besoin "de rester à l'écoute" d'une intervention, comme un click, puisque le deuximeme élément devra etre placé au chargement de la page, ou lorsque la qu'une fonction est "appelée"

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 099
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 099
    Points : 946
    Points
    946
    Par défaut
    Ben j'avance...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function align_to(source,target){
    	if($('#'+source).length>=1){
    			source_height=$('#'+source).offset().top;
    			alert(source_height);
    		}
    		else
    		{
    		}
    };
    J'arrive à afficher la hauteur d'un id.
    Je n'ai pas trop compris j'ai du mettre un "#".

    Aussi, quel fonction, pourrais-je utiliser pour positionner la hauteur, cette fois un autre id

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 099
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 099
    Points : 946
    Points
    946
    Par défaut
    Bonjour à tous,
    J'ai toujours mon probleme,
    Je n'arrive pas a positionner mon élément qui a l'id "info_2"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    function align_to(source,target){
    	if($('#'+source).length>=1){
    			source_height=$('#'+source).offset().top;
    			source_height=source_height.toFixed(0);
    			alert(target);
     
     
    			$('#'+traget).css("background-color","red");
     
    			//$("#"+target).css("position","absolute");
    //$("#"+target).css("top",source_height);
    		}
    		else
    		{
     
    		}
    };
    Auriez-vous une idée pourquoi?

    Mercis

    le alert(target) affiche bien "info_2", mais par contre, je n'ai pas la couleur

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alert(target);
    $('#'+traget).css("background-color","red");

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 099
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 099
    Points : 946
    Points
    946
    Par défaut
    oui, dans mon code j'ai écris correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#'+target).css("background-color","red");
    Mais ca ne marche pour autant pas.
    C'est en écrivant mon post que j'ai fais cette faute. Je suis désolé pour la mauvaise information

    Aussi l'élément que j'éssaye de controler est un div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       <script language="javascript">
       <!--
      align_to('objet_autre_tarif','info_2');
       -->
       </script>
       <div id="info_2">
       <h3>Explication</h3>
          <ul>
          <li>Si v........</li>
          </ul>
       </div>
    sachant que target est égal à info_2

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script language="javascript">
    <!--
      align_to('objet_autre_tarif','info_2');
    -->
    </script>
    <div id="info_2">
    Au moment où tu appelles ta fonction, la div 'info_2' n'existe pas puisqu'elle est déclarée après !
    Regarde du coté de
    c'est-à-dire la base de jQuery...

  12. #12
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 099
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 099
    Points : 946
    Points
    946
    Par défaut
    Ok, j'ai compris mon erreur. Grrrr.
    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 05/05/2008, 15h35
  2. [Débutant] comment récupérer la valeur d'une requête?
    Par Athorus dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 27/02/2007, 17h59
  3. Réponses: 6
    Dernier message: 15/02/2007, 13h46
  4. [débutant] comment récuperer un int pour une hashtable
    Par mariafan dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/01/2007, 23h18
  5. Réponses: 27
    Dernier message: 19/09/2006, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo