dispatcher des événements clavier
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.lang.javascript ]
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

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|