accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

dispatcher des événements clavier

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.lang.javascript ] 

Retour : Accueil du site fr comp lang javascript   charte stats de ce groupe


  Sujet:   dispatcher des événements clavier  
 De: unbewusst.s...@weltanschauung.com.invalid (Une Bév ue)
 Groupes: fr.comp.lang.javascript
 Organisation: Service de news de lacave.net
 Date: 18. Apr 2008, 11:52:49
j'utilise les événements en provenance du clavier (key events) à deux
fins :

- au niveau de la fenêtre, par exemple ^+b me donne la couleur de fond
de l'élément survolé par la souris ;

- sur une page, j'ai des sliders et je souhaite qu'une frappe de la
flèche droite déplace le slider vers la droite.

bon, ces deux handlers marchent indépendamment l'un de l'autre, pas de
pb.


mais comment faire en sorte que les deux puissent fonctionner
simultanément ?

dans le premier cas, je fais :

  document.onmousemove=function(e){
    var position=[e.pageX,e.pageY];
    document.onkeydown=function(e){...};
  };

par le 'onmousemove' je m'assure de pouvoir retrouver l'élément sous la
souris et donc sa couleur de fond, ou de texte.

dans le second :

    _bkg_img_node.onmouseover=function(){
      _mouseover=true;
      this.firstChild.src='slider/background_hover.png';
      document.onkeydown=keyDownHandler;
      return false;
    };
    _bkg_img_node.onmouseout=function(){
      _mouseover=false;
      this.firstChild.src='slider/background.png';
      document.onkeydown=null;
      return false;
    };

  function keyDownHandler(e){
    var tick=1;
    if(window.event){e=window.event;}
    if(e.ctrlKey){tick=10;}
    switch(e.keyCode){
      case 37:_that.decreaseValue(tick);break;
      case 38:_that.setToMax();break;
      case 39:_that.increaseValue(tick);break;
      case 40:_that.setToMin();break;
    }
    return false;
  }

là par le 'mouseover' je n'actionne le handler que lorsque je suis au
dessus d'un slider donné (j'en ai 6 en tout).

-- 
Une Bévue


DateSujet  Auteur
01.01.
o 
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)
Usenet Gratuit