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 :

Plusieurs classes CSS dans une fonction JavaScript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiante à l'Inalco
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiante à l'Inalco
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Par défaut Plusieurs classes CSS dans une fonction JavaScript
    Bonjour,

    Je débute en javaScript et J'aimerais appeler cette fonction javascript :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function bordure(bouton){ 
      boutons=document.getElementsByTagName('td') 
      for (b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
      } 
      boutons=document.getElementsByTagName('div') 
      for (b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
      } 
      boutons=document.getElementsByTagName('a') 
      for (b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
      } 
      boutons=document.getElementsByTagName('img') 
      for (b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
     } 
     
    } 
    window.onload = function(){bordure('bouton')};

    à partir de deux classe css différentes :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .bouton { background:transparent; border:4px outset; border-radius: 0.625em; } 
    div.bouton,a.bouton,img.bouton { border-color:white; padding:0.125em 0.25em;  }
     
    .btnrub { background:transparent; border:4px outset; border-radius: 1em; } 
    div.btnrub,a.btnrub,img.btnrub { border-color:white;}

    Est-ce possible ?

    Si oui avec quel avec quel contraintes et quel syntaxe ?

  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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu cherches quoi exactement ?
    Appliquer ta fonction aux éléments possédant au moins une des classes, sur ceux ayant les deux ou sur une classe sachant que l'élément ciblé possède aussi une autre classe ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Femme Profil pro
    Étudiante à l'Inalco
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiante à l'Inalco
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Par défaut
    Bonjour Bovino,

    Voici la page que je travaille:
    http://ippai.free.fr/materiel-papiers.php

    J'aimerais pouvoir utiliser 2 class de boutons en même temps sur la même page :
    Sur les boutons de rubriques principale img, sans padding
    et sur des boutons de sous rubrique href, avec un padding de 2 et 4px.

    Et avoir l'animation inset outset sans bug.
    Quand j'ai tenté de modifié le script, en remplaçant bouton par : bouton,btnrub
    Les images des gros boutons se détachaient de la page, je n'ais donc pas due utiliser la bonne syntaxte !

  4. #4
    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
    Par défaut
    Simplement comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = function(){ bordure('bouton') bordure('btnrub'); };
    Si tu es obligé d'appeler deux fois la fonction, ça vient de ta condition:
    if(boutons[b].className==bouton){La fonction est prévue pour tester simplement la valeur de l'attribut "class". C'est pas pratique du tout car si on met juste une classe de plus (class="bouton truc" par exemple), même si elle n'a aucun rapport, le code ne fonctionnera plus. Mieux vaudrait utiliser if(boutons[b].classList.contains(bouton)){.

    Pour ce genre de fonctions, utiliser jQuery simplifierait beaucoup de choses.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiante à l'Inalco
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiante à l'Inalco
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Par défaut
    Merci de ta réponse SylvainPV,

    Du coups plus souple de rajouter un seconde fonction ?

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    function bordrub(btnrub){ 
       btnrubs=document.getElementsByTagName('img') 
      for (r=0;r<btnrubs.length;r++){ 
      if(btnrubs[r].className==btnrub){ 
      btnrubs[r].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      btnrubs[r].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      btnrubs[r].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
     } 
     
    function bordure(bouton){ 
      boutons=document.getElementsByTagName('td') 
      for (b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
      } 
      boutons=document.getElementsByTagName('div') 
      for (b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
      } 
      boutons=document.getElementsByTagName('a') 
      for (b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
      } 
      boutons=document.getElementsByTagName('img') 
      for (b=0;b<boutons.length;b++){ 
      if(boutons[b].className==bouton){ 
      boutons[b].onmousedown=function(){this.style.borderStyle='inset';} //Activé 
      boutons[b].onmouseup=function(){this.style.borderStyle='outset';} //Relaché 
      boutons[b].onmouseout=function(){this.style.borderStyle='outset';} //Hors zone 
      } 
     } 
     
    } 
    window.onload = function(){bordure('bouton'); bordrub('btnrub');  };

    mais dans ce cas j'ai un joli bug sur les bouton image qui reste accroché au cursseur.

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    un point important : déclare tes variables !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/06/2006, 13h48
  2. [PHP-JS] une variable php dans une fonction javascript
    Par megapacman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 14h08
  3. créer un type dans une fonction javascript
    Par amelhog dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2005, 13h54
  4. créer un type hidden dans une fonction javascript
    Par amelhog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2005, 12h17
  5. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2005, 15h58

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