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

JavaScript Discussion :

Gérer la 'margin-left' d'un élément


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Par défaut Gérer la 'margin-left' d'un élément
    Bonjour,

    je souhaite attribuer une marge à gauche sur un élément lorsque je clique dessus, marge qui peut être variable!
    Je n'ai pas d'erreur lors de l'éxécution mais la marge que je calcule ne s'applique pas :/

    Le script js:
    Code js : 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
    19
    20
    21
    22
    23
    24
    25
    26
    <script type="text/javascript">
    	function showHide(span){
    		var cible = span;
    		var long = 15;
     
    		if (cible.lastChild.style.display=="none") {
    			cible.lastChild.style.display="flex";
    			cible.lastChild.style.position='absolute';
    			cible.lastChild.lastChild.focus();
    			/* Psitionnement du commentaire,
                                le calcul de la marge se fait ici */
    			if (cible.className == "glyphicon glyphicon-info-sign") {
    				cible.lastChild.style.marginLeft = long - cible.lastChild.offsetWidth + 'px';
    			}	
    		} else {
    			cible.lastChild.style.display="none";
    			cible.lastChild.style.position='relative';
    			if (cible.lastChild.lastChild.value.length > 0) {
    				cible.className = "glyphicon glyphicon-info-sign";
    			} else {
    				cible.className = "glyphicon glyphicon-plus";
    			}
    		} 
     
    	}
    </script>

    La page:
    Code html : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <table class="tableau" border="1">
    	<thead>
    		<tr>
    			<td style="background-color: white; border: none;"></td>
    			<td colspan="2"> <?php echo $plannings[0]->getSalarie()->getNomSalarie()." ".$plannings[0]->getSalarie()->getPrenomSalarie(); ?> </td>
    		</tr>
    		<tr>
    			<td style="background-color: white; border: none;"></td>
    			<td>M</td>
    			<td>AM</td>
    		</tr>
    	</thead>
    	<tbody>
    		<?php
                    $j=0;
                    $nomJours = $planning->chargerNomJours();
                    $plannings[0]->setCommentaire("teeeeeeeeeeeeeeeeeeeeeeeeeeeest");
                    for ($i=0; $i < 10; $i+=2) { 
                            echo "<tr>";
                                    echo "<td>";
                                            echo $nomJours[$j]."<br>".date("d-m-y", strtotime($plannings[$i]->getDateJour()));
                                    echo "</td>";
                                    echo "<td>";
                                            echo $plannings[$i]->getChantier()->getNomChantier(). "<br>";
                                            echo $plannings[$i]->getVehicule()->getNomVehiculeABRG();
                                            if (!is_null($plannings[$i]->getCommentaire())) {
                                                    echo "<div class='commentaire'>";
                                                            echo "<span class='glyphicon glyphicon-info-sign' onclick='showHide(this)'>";
                                                                    echo "<p style='display:none'  class='commAffiche'>";
                                                                            echo $plannings[$i]->getCommentaire();
                                                                    echo "</p>";
                                                            echo "</span>";
                                                    echo "</div>"
                                            } else {
                                                    echo "<div class='commentaire'>";
                                                            echo "<span class='glyphicon glyphicon-plus' onclick='showHide(this)'>";
                                                                    echo "<p style='display:none' class='commSaisie'>";
                                                                            echo "<input type='text' name='commentaire'>";
                                                                    echo "</p>";
                                                            echo "</span>";
                                                    echo "</div>";
                                            }
                                    echo "</td>";
                                    echo "<td>";
                                            echo $plannings[$i+1]->getChantier()->getNomChantier(). "<br>";
                                            echo $plannings[$i+1]->getVehicule()->getNomVehiculeABRG();
                                            if (!is_null($plannings[$i]->getCommentaire())) {
                                                    echo "<div class='commentaire'>";
                                                            echo "<span class='glyphicon glyphicon-info-sign' onclick='showHide(this)'>";
                                                                    echo "<p style='display:none' class='commAffiche'>";
                                                                            echo $plannings[$i]->getCommentaire();
                                                                    echo "</p>";
                                                            echo "</span>"; 
                                                    echo "</div>";
                                            } else {
                                                    echo "<div class='commentaire'>";
                                                            echo "<span class='glyphicon glyphicon-plus' onclick='showHide(this)'>";
                                                                    echo "<p style='display:none' class='commSaisie'>";
                                                                            echo "<input type='text' name='commentaire'>";
                                                                            echo "</p>";
                                                            echo "</span>";
                                                    echo "</div>";
                                            }
                                    echo "</td>";
                            echo "</tr>"; 
                            $j++;
                    }
                    ?>
    	</tbody>
    </table>

    C'est donc la balise <p> contenu dans la balise <span class=glyphicon glyphicon-info-sign> qui doit recevoir la nouvelle marge.

    Merci d'avance de votre aide,
    Cordialement,
    Skunka.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Je crois qu'une balise <p> dans une balise <span> n'est pas correcte...

  3. #3
    Membre confirmé Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Par défaut
    Dans un élan de désespoir, j'ai réessayé mon script (sans modification par rapport à celui que j'ai posté) et ça fonctionne...

    A mon avis, le problème était le même que j'ai régulièrement avec mes fichiers .css, il suffit de vider le cache.

    Une balise <p> dans un <span> n'est peut être pas correct mais cela fonctionne, alors pourquoi pas? :p

    Sujet résolu,
    Skunka.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Bonjour,
    Une balise <p> dans un <span> n'est peut être pas correct mais cela fonctionne, alors pourquoi pas? :p
    il est toujours préférable de créer du code HTML conforme même si le moteur de rendu des navigateurs traite les erreurs et fait au mieux, rien ne te garantie donc que ce code soit pérenne

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

Discussions similaires

  1. Margin-left différent selon les navigateurs (IE et FF)
    Par snyfir dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 14/04/2008, 20h00
  2. Margin-left en pourcentage Pb IE7
    Par pmithrandir dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 13/12/2007, 14h47
  3. fonction qui modifie le margin-left
    Par ipeteivince dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/11/2007, 09h40
  4. Problème margin-left sous IE !
    Par finalfx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/04/2006, 18h26

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