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 :

Comment inverser deux éléments en javascript ?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    chamonix
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chamonix

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Comment inverser deux éléments en javascript ?
    Bonjour, j'ai beau me creusé la tête je vois pas comment je peut inversé 2 élément par rapport a la résolution d'ecrant...

    fichier javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ($(window).width() <= 900){
    		<nav> le menu </nav>	
    <header> Contenue </header>
    	}
    	else {
    <header> Contenue </header>
    <nav> le menu </nav>
    	}
    Fichier html :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <header> Contenue </header>
    <nav> le menu </nav>

    Ou bien c'est ptete impossible ce que je cherche a faire

    En vous remerciant d'avance

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Tu veux une solution JavaScript ? En utilisant appendChild ou insertBefore (toutes deux méthodes du DOM standard) si l'élément existe déjà, il va être déplacé. C'est surprenant quand on ne connaît pas cet « effet secondaire », mais on peut en tirer parti.

    Comme jQuery utilise les méthodes du DOM sous le capot, il a lui aussi ce comportement. Connais-tu les méthodes .before() et .after() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($(window).width() <= 900){
       $("header").before($("nav"));
    }
    Sinon, j'ai une solution pur CSS avec une media query :

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /* positionnement naif mais c'est pour illustrer */
    header, nav { position: absolute; }
    header { top: 0;    }
    nav    { bottom: 0; }
     
    @media(max-width: 900px) {
       header { top: auto; bottom: 0;    }
       nav    { top: 0;    bottom: auto; }
    }

    L'avantage des media queries est qu'on n'a pas besoin de surveiller l'évènement resize pour modifier la page quand la taille de la fenêtre change.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    +1 pour la media query, ça semble le plus approprié ici
    One Web to rule them all

  4. #4
    Futur Membre du Club
    Homme Profil pro
    chamonix
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chamonix

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Watilin Je te remercie, je débute dans le javascript en tant que webdesigner, et sa ma bien aider , par contre je vais me contenter de la version javascript car le element on pas de hauteur fixe, si c'est en absolute sa passera par dessus l'autre.

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Comme dit dans le commentaire de Watilin, le positionnement en absolute est un simple exemple, tu dois pouvoir faire un truc plus propre à base de float ou de flexbox. L'idée était surtout d'utiliser les media queries, qui sont plus simples et efficaces qu'un reparse HTML en JavaScript branché sur un test de largeur d'écran dans un eventListener sur window.resize.
    One Web to rule them all

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/06/2010, 11h31
  2. Comment inverser deux caractères dans l'éditeur?
    Par rmenet dans le forum Eclipse
    Réponses: 2
    Dernier message: 08/10/2008, 10h20
  3. comment faire fonctionner deux functions en javascript
    Par junior-ak-babyboy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/12/2007, 13h10
  4. Comment parcourir les éléments d'un panel en javascript
    Par shirya dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/01/2007, 17h18
  5. [Javascript] Comment lier deux liste de sélection
    Par orleans dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/04/2006, 07h12

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