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 :

JavaScript ne récupère pas le chemin d'une image


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut JavaScript ne récupère pas le chemin d'une image
    Bonsoir,

    Dans ce programme mon but est d'alterner les images or ma fonction div.style.backgroundImage.name === "url(images/image0.png)" ne fonctionne pas !

    Voici l'ensemble de mes codes :
    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
    <!DOCTYPE html>
    <html lang="fr">
       <head>
     
          <link rel="stylesheet" href="style.css" />   
          <title>DOM6</title>
          <script src="scripts.js"></script>
       </head>
       <body>
     
    	  <button type="button" onClick="changer_couleur_div()">changer de couleur !</button>
          <div id="div1" onmouseover="changer_couleur_survol_div()"></div>
       </body>
    </html>
    Code CSS : 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
    #div1
    {
    	height:20cm;
    	margin-left:25%;
    	margin-right:25%;
    	background-color:white;
    	background-image:url(images/image0.png);
    	background-size:30%;
    }
     
    body 
    {
    	background-color:gray;
    }
     
    button
    {
     
    	width:20%;
    	height:13%;
    	margin-left:40%;
    }
    Code JavaScript : 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
    function changer_couleur_div() {
        "use strict";
        var div = document.body.firstChild.nextSibling.nextSibling.nextSibling;
        if (div.style.background === "white") {
            div.style.background = "yellow";  
        } else {
            div.style.background = "white";
        }
    }
     
    function changer_couleur_survol_div() {
        "use strict";
        var div = document.body.firstChild.nextSibling.nextSibling.nextSibling;
    	if (div.style.backgroundImage.name === "url(images/image0.png)") {
    		div.style.backgroundImage = "url(images/image1.png)";
    	}
    	if (div.style.backgroundImage === "url(images/image1.png)") {
    		div.style.backgroundImage = "url(images/image2.png)";
    	}
    	if (div.style.backgroundImage === "url(images/image2.png)") {
    		div.style.backgroundImage = "url(images/image3.png)";
    	}	
    	if (div.style.backgroundImage === "url(images/image3.png)") {
    		div.style.backgroundImage = "url(images/image0.png)";
    	}    
    }

    Mon dossier ressemble à ceci :

    Nom : Captureok.PNG
Affichages : 434
Taille : 98,2 Ko

    Merci

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    1 - Il me semble que c’est backgroundColor et non pas background.
    2 - Tu écris backgroundImage et aussi backgroundImage.name. Tu ne trouves pas que quelque chose ne va pas ?
    Après il se peut qu’il y ait d’autres erreurs qui feront que les corrections ne rendront pas le code fonctionnel.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut
    Merci pour votre réponse, mais dans mon cas il s'agit de modifier l'image en background de mon div je dois donc utiliser backgroundImage.
    Ce que je n'arrive pas c'est ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (div.style.background === "url(images/image1.png)") {
    		div.style.backgroundImage = "url(images/image2.png)";
    	}
    le soucis vient de la condition dans le if je veux que si l'image1 est en fond d'écran le fond d'écran aura alors pour image l'image2.

  4. #4
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Je me répète.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function changer_couleur_div() {
        "use strict";
        var div = document.body.firstChild.nextSibling.nextSibling.nextSibling;
        if (div.style.background === "white") {  <= div.style.backgroundColor
            div.style.background = "yellow";   <= idem
        } else {
            div.style.background = "white"; <= idem
        }
    }


    Tu mets .name et juste en dessous tu ne le mets pas. Il ne faut pas mettre le .name
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if (div.style.backgroundImage.name === "url(images/image0.png)") {
    		div.style.backgroundImage = "url(images/image1.png)";
    	}


    Il n'y a rien qui t'interpelle dans ce que tu as écrit ? En informatique il faut être rigoureux.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (div.style.background === "url(images/image1.png)") {
    		div.style.backgroundImage = "url(images/image2.png)";
    	}

  5. #5
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Une autre chose.

    Avec ton code suivant plus rien ne fonctionnera si tu ajoutes un élément html avant le div !
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var div = document.body.firstChild.nextSibling.nextSibling.nextSibling;

    Il vaudrait mieux travailler directement avec l'id du div.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var div = document.getElementById('div1');

    Au final. L'adressage relatif (document.body.firstChild.nextSibling.nextSibling.nextSibling) peut des fois être très utile mais il faut bien maîtriser son sujet sachant que dans 99% des cas l'adressage absolu (document.getElementById('div1')) suffit.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut
    j'ai utilisé var div = document.body.firstChild.nextSibling.nextSibling.nextSibling; puisque c'est l'énoncé qui me l'oblige. (En fait je n'est pas assez clair c'est la fonction changer_couleur_survol_div() qui ne fonctionne pas)

    Voici de nouveau mon code modifié (la première fonction est correct la deuxième a un soucis au niveau du if) :
    JAVASCRIPT modifié
    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
    function changer_couleur_div() {
        "use strict";
        var div = document.getElementById("div1");
        if (div.style.background === "white") {
            div.style.background = "yellow";  
        } else {
            div.style.background = "white";
        }
    }
     
    function changer_couleur_survol_div() {
        "use strict";
        var div = document.getElementById("div1");
    	if (div.style.backgroundImage === "url(images/image0.png)") {
    		div.style.backgroundImage = "url(images/image1.png)";
    	}
    	if (div.style.backgroundImage === "url(images/image1.png)") {
    		div.style.backgroundImage = "url(images/image2.png)";
    	}
    	if (div.style.backgroundImage === "url(images/image2.png)") {
    		div.style.backgroundImage = "url(images/image3.png)";
    	}	
    	if (div.style.backgroundImage === "url(images/image3.png)") {
    		div.style.backgroundImage = "url(images/image0.png)";
    	}    
    }

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

Discussions similaires

  1. tJava ne récupère pas le contenu d'une table
    Par Sieur_Blabla dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 07/02/2013, 15h52
  2. $_POST ne récupère pas le choix d'une liste
    Par sativa808 dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2008, 15h57
  3. [MFC] Récupérer le chemin d'une image
    Par Rafoo dans le forum MFC
    Réponses: 2
    Dernier message: 08/06/2006, 14h52
  4. Récupération du chemin d'une image
    Par kurul1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/09/2005, 10h40
  5. Réponses: 3
    Dernier message: 31/08/2005, 17h52

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