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 :

onmousemove dans une balise TD


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 55
    Points
    55
    Par défaut onmousemove dans une balise TD
    Bonjour,

    J'ai un tableau basic, par exemple 2x2 (2 lignes, 2 colonnes)

    Je souhaiterais que pour chaque cellule qui est 'visité par la sourie" (évènement onmousemove) je colorie la cellule dans une certaine couleur. Et revenir a la couleur initiale lorsque la sourie a quitté l'espace de la cellule. Comment faire ?

    D'une façons générale, comment appréhender les évènement onclick, onmousemove etc. ? J'utilise Visual Studio Web Develoment 2008 et l'InteliSense (qui est génial) m'offre ces fonctions onmousemouve, etc. ?

    Merci de toute aide,

    J.

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,
    dans le cas dont tu parles, il vaut mieux passer par onmouseover et onmouseout
    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 du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 55
    Points
    55
    Par défaut
    Oui, d'accord. Mais comment ?

    J.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    un exemple de la FAQ, à adapter ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre actif Avatar de Causa Sui
    Inscrit en
    Mai 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 133
    Points : 209
    Points
    209
    Par défaut
    Dans ton cas particulier de survol, je n'ai qu'un conseil : ne surtout pas utiliser du JS pour faire ça. Javascript c'est pour l'application ; pour la présentation, c'est CSS.
    CSS fait ce genre de choses très bien, et de façon plus sûr (même si ça ne fonctionne pas sous IE6).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    td { background-color:#xxxxxxx; }
    td:hover{ background-color:#yyyyyy;  }

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Causa Sui Voir le message
    (même si ça ne fonctionne pas sous IE6).
    C'est, hélas (je dis bien "hélas" !) une raison suffisante dans certains cas, pour faire autrement ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 55
    Points
    55
    Par défaut
    Merci Causa Sui pour ta réponse.

    Néanmoins si je ne veux pas utiliser des feuilles de style, comment faire ?

    J'ai essayé ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <td style="background-color:#ff00ff;" style="hover: background-color:#00F000;">
     </td>
    La seule chose qui fonctionne c'est le premier "style" avec la background color. Le second avec le "hover" ne fonctionne pas. Une idée ?

    J.

  8. #8
    Membre actif Avatar de Causa Sui
    Inscrit en
    Mai 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 133
    Points : 209
    Points
    209
    Par défaut
    Très bonne question... je ne suis pas sur que ce soit faisable sans feuille de style en fait.
    Pour IE6, je suis d'accord, mais c'est pas une raison pour changer...
    Le mieux est de faire ça en CSS et d'ajouter un bugfix pour IE6, comme ça le jour où on oublie IE (ce qui n'arrivera jamais assez vite), on a qu'a supprimer le fichier javascript et garder une feuille de style, ce qui est mieux.

  9. #9
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Causa Sui Voir le message
    Très bonne question... je ne suis pas sur que ce soit faisable sans feuille de style en fait.
    Non, je ne crois pas non plus que les styles inline acceptent les pseudos éléments et les pseudo classes...
    Pour IE6, je suis d'accord, mais c'est pas une raison pour changer...
    Le mieux est de faire ça en CSS et d'ajouter un bugfix pour IE6, comme ça le jour où on oublie IE (ce qui n'arrivera jamais assez vite), on a qu'a supprimer le fichier javascript et garder une feuille de style, ce qui est mieux.
    Oui, je suis bien d'accord ! Pourquoi vouloir s'embêter à faire avec JavaScript ce qui est prévu de faire en CSS
    Citation Envoyé par Jinx_
    Néanmoins si je ne veux pas utiliser des feuilles de style
    Quelle drôle d'idée... Il y a une raison particulière ?
    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

  10. #10
    jnore
    Invité(e)
    Par défaut
    Bonsoir

    Tiens une petite classe non intrusive qui doit réaliser ce que tu attends.

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    var gestionTD=
    	{
    	colorOver	:	"red",//METTRE ICI LA COULEUR DESIREE AU PASSAGE DE LA SOURIS
    	colorOld	:	"",
     
    	recuperation: function(table)
    		{
    		if(table != undefined)
    			{
    			if(document.getElementById(table))
    				{
    				this.tab=document.getElementById(table).getElementsByTagName('TD');
    				}
    				else
    				{
    				alert('Le choix de la table n\'existe pas !');return;
    				}
     
    			}
    			else
    			{
    			this.tab=document.body.getElementsByTagName('TD');
    			}
     
    		this.associerEvenements();
    		},
     
    	associerEvenements : function()
    		{
    		for(var i=0; i< this.tab.length; i++)
    			{
    			if(document.all)//POUR IE
    				{
    				this.tab[i].setAttribute('onmouseover',function(){gestionTD.colorer(this);} );
    				this.tab[i].setAttribute('onmouseout',function(){gestionTD.decolorer(this);} );
    				}
    				else //FF ET LES AUTRES
    				{
    				this.tab[i].onmouseover	=function() {gestionTD.colorer(this);};
    				this.tab[i].onmouseout	=function() {gestionTD.decolorer(this);};
    				}
     
    			}
    		},
    	colorer : function(td)
    		{
    		this.colorOld=td.style.backgroundColor;
    		td.style.backgroundColor =gestionTD.colorOver ;
    		},
     
    	decolorer:function (td)
    		{
    		td.style.backgroundColor =gestionTD.colorOld;
    		}
     
    	};
     
    gestionTD.recuperation(id);//Mettre le id de la table concernée par la gestion des td ou si on ne mets rien, tous les td du body seront concernés
    Mettre ce script dans un fichier js qui s'appèlera : gestion_td.js

    Il te faut mettre aussi l'instruction suivante dans la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type="text/javascript" src="gestion_td.js"></script>

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Points : 55
    Points
    55
    Par défaut
    OK merci, jnore. Je m'en suis sorti en utilisant le onmouseover et onmouseout en javascript. Très rapide.

    UNe autre question (peut-être pas dans le bon forum, tant pis). J'ai a plusieurs reprise dans un page la syntaxe suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <font color=blue> XXXXX </font>
    Est-ce que on peut mêtre tous ca dans une feuille de style ? Et comment utiliser cette feuille de style dans le code html ?

    Merci.

    J.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Jinx_ Voir le message
    Merci Causa Sui pour ta réponse.

    Néanmoins si je ne veux pas utiliser des feuilles de style, comment faire ?

    J'ai essayé ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <td style="background-color:#ff00ff;" style="hover: background-color:#00F000;">
     </td>
    La seule chose qui fonctionne c'est le premier "style" avec la background color. Le second avec le "hover" ne fonctionne pas. Une idée ?

    J.
    ------------------------------------------------------
    Je ferais çà plutôt :
    <td style="background-color:#ff00ff; hover: background-color:#00F000;">&nbsp;</td>

Discussions similaires

  1. Mettre une saut de ligne dans une balise alt
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/12/2004, 08h45
  2. Aller à la ligne dans une balise <option>
    Par nebule dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/12/2004, 18h27
  3. [XSL]faire une balise dans une balise??? (ComboBox)
    Par rastoix dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/05/2003, 08h34
  4. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24
  5. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57

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