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 :

Récupérer la couleur de fond d'une cellule de tableau transparente


Sujet :

JavaScript

  1. #1
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut Récupérer la couleur de fond d'une cellule de tableau transparente
    Bonjour,

    J'ai un tableau sur lequel je n'ai défini aucune couleur de fond.
    Le tableau prend donc par défaut la couleur de l'élément parent qui n'est pas transparent.

    Je cherche à déterminer cette couleur en partant d'une cellule de ce tableau.
    Est ce possible ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    une boucle sur le parent jusqu'a trouver une couleur ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    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
    Billets dans le blog
    20
    Par défaut
    getComputedStyle() et currentStyle ?
    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

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    mais pourquoi n'as-tu pas accès directement à la couleur de ce parent?

  5. #5
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Pour ce qui est de currentStyle, j'ai l'impression que cette propriété ne fonctionne pas. Ou alors je l'utilise mal.


    Pour récupérer le bg color d'un élément parent on fait bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('monelement').parrentNode.style.backgroundColor
    ?

    mais pourquoi n'as-tu pas accès directement à la couleur de ce parent?
    Je n'ai accès que au contenu d'une page. Et le design peut être changé à volonté. Bien sur aucun css n'est identique et les design ne sont jamais structuré de la même façon.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Citation Envoyé par Seb33300
    Pour ce qui est de currentStyle, j'ai l'impression que cette propriété ne fonctionne pas. Ou alors je l'utilise mal.
    currentStyle pour IExplorer
    et
    getComputedStyle pour les W3C-ziens

    document.getElementById('monelement').parrentNode.style.backgroundColor
    plusieures remarques :
    - il y a un r en trop.

    - si c'est la TABLE qui possède le style un simple parentNode ne te fera remonter que jusqu'à la TR parente, il te faut donc remonter l'arbre jusqu'au parent ultime.

    - style.backgroundColor ne te donnera une indication que si le style est placé dans la balise, mais pas dans la feuille de style.

  7. #7
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    style.backgroundColor ne te donnera une indication que si le style est placé dans la balise, mais pas dans la feuille de style.
    Oui, pour ça je sais, mais par contre est ce que getComputedStyle / currentStyle me renvoie la valeur du style.backgroundColor si celui ci est définie ? Ou alors il renvoi uniquement la valeur du style définie dans les balises <style> et du coup, je suis obligé de vérifier au 2 endroits.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    currentStyle et getComputedStyle, sont indépendant de la position de la déclaration des attributs de style, balise ou feuille de style.

  9. #9
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Voila un fonction qui semble fonctionner :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function recursiveBgColor(e){
    	if(e.currentStyle){
    		if
    			(
    				(e.currentStyle.backgroundColor == 'transparent')
    				|| (e.currentStyle.backgroundColor == 'rgba(0, 0, 0, 0)')
    				|| (e.currentStyle.backgroundColor == '')
    			)
    		{
    			return recursiveBgColor(e.parentNode);
    		}else{
    			return e.currentStyle.backgroundColor;
    		}
    	}else if(window.getComputedStyle){
    		if
    			(
    				(window.getComputedStyle(e, null).backgroundColor == 'transparent')
    				|| (window.getComputedStyle(e, null).backgroundColor == 'rgba(0, 0, 0, 0)')
    				|| (window.getComputedStyle(e, null).backgroundColor == '')
    			)
    		{
    			return recursiveBgColor(e.parentNode);
    		}else{
    			return window.getComputedStyle(e, null).backgroundColor;
    		}
    	}
    }
    Par contre il y a un cas ou j'ai quelques soucis mais je ne sais as si je vais pouvoir y faire grand chose.
    Lorsque le fond est une image...

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    perso j'aurais fait une fonction getStyle et une fonction de recherche, ce qui permet effectivement de tester plusieurs cas possibles, comme ton cas de backgroundImage.

  11. #11
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Le problème c'est qu'une image n'est pas forcément un fond de couleur unie...
    Donc dans tous les cas je pourrais pas me baser sur une image.

    Et si le thème est bien fait, un couleur est aussi définie en même temps que l'image...

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Citation Envoyé par Seb33300
    Et si le thème est bien fait, un couleur est aussi définie en même temps que l'image...
    dans ce cas il faut faire avec les deux, c'est la moindre des choses.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/08/2010, 08h20
  2. Modifier couleur de fond d'une cellule d'un tableau dynamiquement.
    Par fred61 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/03/2009, 02h19
  3. Couleur de fond d'une cellule variable
    Par Cafu3 dans le forum Débuter
    Réponses: 2
    Dernier message: 19/03/2009, 10h56
  4. [VB.NET][DataGridView]:couleur de fond d'une cellule
    Par BigTicket42 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/05/2008, 22h07
  5. mise à jour de la couleur de fond d'une cellule
    Par Lady_jade dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/11/2005, 11h18

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