Cerca nel blog

Pubblicità

banner-125x125 banner-125x125 banner-125x125 banner-125x125

Feed RSS e Newsletter

Puoi seguire il mio blog abbonandoti al feed RSS, se non sai cos'è un feed RSS prova a guardare questo video... Spiega tutto!

Icona Feed RSS

Twitter

No public Twitter messages.

MyBlogLog

PayPal

Se ti piace questo blog puoi pensare ad una donazione.

Tutti i fondi ricevuti saranno utilizzati per il mio sollazzo personale. :-)

Ultimi commenti...

Kika23: mandata mail :mrgreen:

Nicola D'Agostino: Potrebbe essere il ritorno di un noto (ed ignorato) problemino con alcune installazioni di...

Barbara: Finora ne ho schedulato solo uno e è andato a buon fine … strano sto problema nel vecchio WP...

soloparolesparse: A Torino piove da ieri sera… situazione praticamente risolta. …ribadisco il...

AndyEwo232: Beh in effetti è proprio per il riscaldamento globale che il clima che si sta raffreddando, in pratica...

Controllare un elemento html con la tastiera

giovedì 12 aprile 2007
1 Star2 Stars3 Stars4 Stars5 Stars Vota!
Loading ... Loading ...

Non serve quasi a niente, lo so. Però possiamo farlo, quindi facciamolo. Google Maps permette, attraverso un'apposito parametro, di attivare la navigazione attraverso le classiche "frecce" della tastiera. Allo stesso modo è possibile controllare e modificare il posizionamento di un elemento HTML (immagine, div, quello-che-vi-pare) intercettando la pressione dei tasti (qualsiasi tasto voi vogliate, non solo le frecce) utilizzando qualche riga di JavaScript.

LE BASI
Questo semplice script, inserito in una pagina HTML, permette di visualizzare il keycode di ogni tasto presente sulla vostra tastiera:

// All'evento "onkeydown" viene chiamata la funzione sposta()
document.onkeydown = sposta;  	
 
function sposta(e)
{
     var codice; 		
 
     // Internet Explorer o Firefox?
     // Intercetto l'evento e lo metto nella variabile "codice"
     if (window.event) codice = window.event.keyCode;
     else if (e) codice = e.which;
 
     // Alert del codice
     alert(codice);
}

Vedrete che ogni tasto ha un codice diverso. Nel nostro caso ci interessano i 4 codici relativi alle frecce direzionali:

  • Sinistra: 37
  • Giù: 40
  • Destra: 39
  • Su: 38

Vediamo ora come utilizzare questi codici per muovere una div: la funzione è simile a quella appena vista, alla pressione del tasto viene controllato il codice ritornato e se corrisponde ad uno dei 4 codici delle "frecce" viene modificato il CSS della DIV di conseguenza.

MUOVERE UNA DIV
Come al solito è più facile vedere un esempio che spiegare a parole il funzionamento: il CSS della DIV viene modificato a seconda del tasto premuto.

// All'evento "onkeydown" viene chiamata la funzione sposta()
document.onkeydown = sposta;  	
 
function sposta(e)
{
	var codice;
	var next;
 
	// Internet Explorer o Firefox?
	// Intercetto l'evento e lo metto nella variabile "codice"
	if (window.event) codice = window.event.keyCode;
	else if (e) codice = e.which;
 
	// Vari casi:
	switch(codice)
	{
		// Freccia su
		case 38:
			next = parseInt($("rosso").style.top) - 5;
			$("rosso").style.top = next + "px";
		break;
 
		// Freccia sinistra
		case 37:
			next = parseInt($("rosso").style.left) - 5;
			$("rosso").style.left = next + "px";
		break;
 
		// Freccia destra
		case 39:
			next = parseInt($("rosso").style.left) + 5;
			$("rosso").style.left = next + "px";
		break;
 
		// Freccia giù
		case 40:
			next = parseInt($("rosso").style.top) + 5;
			$("rosso").style.top = next + "px";
		break;
 
		default: void(0);
	}
}

Facile no? La variabile next viene usata come appoggio per calcolare il valore in pixel della proprietà top o left che la DIV, posizionata "absolute" andrà ad assumere.

Gli usi sono pressoché infiniti se ci si ragiona un po' su: navigazione di immagini, giochini, ecc... Nell'esempio non vengono considerati i bordi della pagina: come dicono all'università "ve lo lascio come esercizio".

:mrgreen:

OCCHIO!
Il post non mostra correttamente la riga next + "px", mostra solamente next "px". Se volete copiare il codice, copiatelo dall'esempio...

Questo articolo è stato pubblicato giovedì, 12 aprile 2007 alle ore 08:25 Se non vuoi perdere nemmeno un articolo del mio blog abbonati al feed RSS. Se non sai cos'è un feed RSS puoi guardare questo video, spiega tutto!

In alternativa puoi abbonarti alla newsletter, riceverai un'email ogni volta che verrà pubblicato un nuovo post. Il tuo indirizzo email sarà gestito da Feedburner.

  

8 Commenti a “Controllare un elemento html con la tastiera”

  1. Senza Identità scrive:

    l’uso di prototype oramai si sottintende? :-D

  2. Raffaele :: CreativeBits scrive:

    Fantastico, è da un po’ che cercavo una bella guida in italiano! :)

  3. Napolux scrive:

    @Senza Identità
    Dove vedi prototype nell’esempio? O forse ho capito male io ;)

  4. Senza Identità scrive:

    scusa ho visto solo ora che hai definito la funzione $ , pensavo avessi usato prototype.js ;-)

  5. Napolux scrive:

    La $() di prototype è molto più figa. Ma aggiungere tutto quel JS per una sola funzione non mi sembrava il caso.

  6. Andrea Micheloni scrive:

    Bel tutorial, complimenti :)

  7. Giorgio Zanetti scrive:

    Bravo, ottimo post! :-)

  8. Zanblog.it di Giorgio Zanetti » Zlink! /032 scrive:

    [...] Controllare un elemento html con la tastiera Un interessante e chiaro tutorial di Napolux. estensioni, firefox, html, impress, musica, openoffice, zlink!categorie: Software, Musica, Informatica, tecnologia, Internet, Zlink!, HTML & C. Commenti » [...]