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 :

Jeux du post it


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 22
    Par défaut Jeux du post it
    Bonjour à tous,

    Je suis actuellement en train de développer une application web en JS dont le but est de créer des illustrations à base de post-it, et de connaitre le nombre de post-it nécessaires.

    Pour cela j'ai fait deux inputs pour choisir le nombre de lignes et de colonnes. Ce qui me dessine une grille de carrés vide au fur et à mesure qu'on augmente ou diminue les paramètres.
    De plus, j'ai créer une grille de 9 couleurs.
    Le but rechercher etant de mettre en surbrillance la case de la couleurs choisie et d'appliquer cette couleurs dans la grille vide soit par le click soit par le survol.

    Je n'arrive pas du tout cette dernière partie. Pourriez vous me donner un coup de main svp. Voici le code déjà fonctionnel :
    post-it.html

    merci d'avance.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour et bienvenue sur DVP.

    Regarde du coté des événements onclick et/ou onmouseover/out.

    Tu aurais intérêt à mettre tes écouteurs sur la TABLE.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 22
    Par défaut
    J'ai du mal a voir ou mettre dans ce que j'ai deja rédiger les ecouteurs.

    tu peux m'aider stp

  4. #4
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 119
    Billets dans le blog
    1
    Par défaut
    Si j'ai bien compris !!!

    Je te propose de faire ca avec des click

    quand tu click sur une cellule coloriée et en suite tu click sur la cellule qui vient de se creer celle ci prend la coleur selectionnée
    pour ca declare une variable globale a ton code js dans laquelle tu sotckera la couleur selectionnée.
    puis sur chaque cellule tu attacheras une event click

    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
    window.globalColour='""; // a declarer des le debut (ou var...)
    
    ....
    
    for(row=0;row<heightID.value;row++){
    				tr=document.createElement('tr');
    				for(cell=0;cell<widthID.value;cell++){
    					td=document.createElement('td');
    					td.onclick=function(){
    					if(globalColour)
    	   this.style.backgroundColor=globalColour;
    	}
    
    					tr.appendChild(td);
    				}
    
    
    ....
    
    
    td = document.createElement("td"); // Création de notre deuxième case
        tr.appendChild(td); // On place la seconde case dans la (première) ligne
    	td.style.backgroundColor='blue' ; 
    	td.onclick=function(){
    	   globalColour='blue'
    	}
    ...
    Si t as pas compris ce code ou que moi j ai pas compris ta question
    tu me diras plus

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Mettre un écouteur sur chaque cellules n'est pas une bonne solution dans ce cas, il est préférable de mettre, comme dit plus haut, un écouteur sur la TABLE parent et de faire en fonction du besoin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var oTable = document.getElementById('la_table');
    oTable.onclick = function(e){
      e = e || window.event;
      var oElem = e.target || e.srcElement;
      if( oElem.tagName === 'TD'){
        oElem.classList.toggle('clicked');
      }
    };
    dans le code ci dessus chaque click sur une cellule, et ce quelle que soit la cellule, ajoute/supprime la classe clicked, on peut gérer de la même façon le mouseover/out même si le CSS me parait plus indiqué pour ces événements.

  6. #6
    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
    @NoSmoking: c'est marrant que tu ais pensé à window.event et srcElement pour les IE<9, mais que tu utilises classList.toggle juste derrière qui lui est IE10 minimum. Allez, c'est 2016, on oublie IE et on passe un petit coup d'autopolyfiller et d'es5-shim derrière

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 22
    Par défaut
    OK pour gérer ca avec du CSS mais comment tu fais ? -> novice :/

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/07/2009, 10h05

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