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 :

Suppression de la couleur de fond d'une échelle de carte Leaflet


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Utilisateur occasionnel de MySQL
    Inscrit en
    Décembre 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Utilisateur occasionnel de MySQL

    Informations forums :
    Inscription : Décembre 2017
    Messages : 49
    Par défaut Suppression de la couleur de fond d'une échelle de carte Leaflet
    Bonjour,

    J'utilise l'API "leaflet-graphicscale" pour afficher une échelle sur ma carte Leaflet: https://github.com/nerik/leaflet-graphicscale.

    Dans la page html j'ai déclaré le style suivant :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    .leaflet-control-graphicscale {
       background-color: rgb(254, 246, 237);
    	opacity: 1;
        padding: 5px 24px 6px 14px;
        box-shadow: 0px 0px 30px rgba(52, 38, 13, .5);
        color: rgb(107, 55, 32);
     
    }
     
    .leaflet-control-graphicscale .line {
        border-color: rgb(107, 55, 32);
    	opacity: 1;
    }
     
    .leaflet-control-graphicscale .filled .fill {
        background-color: rgb(100, 100, 100);
    }
     
    .scaleText {
        margin-bottom: 15px;
        text-align: center;
    }
     
    .scaleText h1, .scaleText p {
        margin: 0;
    }
     
    .scaleText h1 {
        font-family: 'Arial', cursive;
        font-size: 16px;
    }
     
    .scaleText .choice {
        margin: 0 5px;
        cursor: pointer;
    }
     
    .leaflet-control-graphicscale .labelSub, .labelLast, .zeroLabel  {
     
        font-size: 11px;
    	color: black;
        margin-bottom: 4px;
    	font-weight: 500;
    }
    L'affichage avec ce style se déroule correctement, maintenant je voudrais pouvoir choisir entre ce style et une variante en retirant background et box-shadow dans .leaflet-control-graphicscale

    J'ai tenté le code suivant :

    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
    function changegraphicScale(){
     
    var controlgraphicScale = document.getElementsByClassName('leaflet-control-graphicscale');
     
    controlgraphicScale.style.backgroundColor = "";
    controlgraphicScale.style.boxShadow = "";
     
    }
     
    var graphicScale = L.control.graphicScale({position: 'bottomleft', doubleLine:true, fill:true}).addTo(map);
    var scaleText = L.DomUtil.create('div', 'scaleText' );
    graphicScale._container.insertBefore(scaleText, graphicScale._container.firstChild);
     
    var scaleContainer = graphicScale.getContainer();
    var draggable = new L.Draggable(scaleContainer);
    draggable.enable();
    La syntaxe écrite n'est pas reconnue...

    Voici l'adresse de ma page de test : http://manardb.free.fr/tmp/Test-changement-fond.html

    Avec mes remerciements pour votre aide

    Bernard

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    Peut être cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    controlgraphicScale[0].style.backgroundColor = "rgba(254, 246, 237, 0)";
    controlgraphicScale[0].style.boxShadow = "0px 0px 30px rgba(52, 38, 13, 0)";
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre averti
    Homme Profil pro
    Utilisateur occasionnel de MySQL
    Inscrit en
    Décembre 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Utilisateur occasionnel de MySQL

    Informations forums :
    Inscription : Décembre 2017
    Messages : 49
    Par défaut
    Bonsoir ProgElecT,

    Je te remercie de ta réponse, j'ai changé les deux lignes indiquées, rien ne change. J'ai l'impression que la fonction ne se lance pas.

    Je viens d'essayer ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (choixfond == "02") 
    {
    changegraphicScale()
    } 
    function changegraphicScale(){
     
    var controlgraphicScale = document.getElementsByClassName('leaflet-control-graphicscale');
     
    controlgraphicScale.style.backgroundColor = "rgba(254, 246, 237, 0)";
    controlgraphicScale.style.boxShadow = "0px 0px 30px rgba(52, 38, 13, 0)";
     
    }
    J'ai cette erreur : "Uncaught TypeError: Cannot set properties of undefined (setting 'backgroundColor') at changegraphicScale"

    Je viens de faire un nouvel essai en modifiant le nom du className

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var controlgraphicScale = document.getElementsByClassName('leaflet-control-graphicscale leaflet-control');
    Toujours cette erreur


    Bonne soirée

    Bernard

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Peut être pas le bon élément
    remplacer
    var controlgraphicScale = document.getElementsByClassName('leaflet-control-graphicscale');.
    par
    var controlgraphicScale = document.getElementsByClassName('leaflet-control-graphicscale leaflet-control');
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre averti
    Homme Profil pro
    Utilisateur occasionnel de MySQL
    Inscrit en
    Décembre 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Utilisateur occasionnel de MySQL

    Informations forums :
    Inscription : Décembre 2017
    Messages : 49
    Par défaut
    Merci de ta suggestion, je venais de la faire juste avant ta réponse, mais hélas l'erreur est toujours présente

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Voir ma premiere suggestion post 2
    Attention, getElementsByClassName renvoie une collection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    controlgraphicScale[0].style.backgroundColor = "rgba(254, 246, 237, 0)";
    controlgraphicScale[0].style.boxShadow = "0px 0px 30px rgba(52, 38, 13, 0)";
    controlgraphicScale[0], penser a indexer 0 (zero)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

Discussions similaires

  1. TDBGRID - Couleur de fond d'une seule cellule
    Par cgo dans le forum Bases de données
    Réponses: 5
    Dernier message: 11/09/2009, 10h16
  2. Réponses: 2
    Dernier message: 26/02/2005, 09h26
  3. Réponses: 4
    Dernier message: 23/06/2004, 14h30
  4. debutant : couleur de fond d'une application direct3D
    Par ptidrone dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2004, 17h08
  5. [VB.NET] [Forms] Modifier le fond d'une ligne
    Par maitrebn dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/05/2004, 16h53

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