And After - Design e Tecnologia por Sua Conta!
O desenvolvedor é um blog sobre desenvolvimento web, não tratando apenas de programação mas também compartilhando experiências, métodos, debates e tendências da internet.

O Desenvolvedor é um blog de www.andafter.org
Assinar o Feed RSS

Guilherme Serrano

[@]
[www]

Graduado em design, viciado em web, adoro desenvolvimento, mashups, usabilidade, o universo e tudo mais.

Vivo de e para internet. :)

Status
Karma: 53894
Opiniões: 30

Mais deste autor


Criar atalhos no teclado com Javascript e jQuery

Criar atalhos no teclado com Javascript e jQuery

Muito bomEste texto foi classificado como Muito bom
Em Internet, Programação, Softwares
Por Guilherme Serrano
5 de Janeiro de 2010

Criando atalhos com javascript para ativar funções do seu site e facilitar a navegação através do teclado, exemplos com ou sem a biblioteca jQuery.

RSS Acompanhe O Desenvolvedor por Feeds!


Depois de publicada a tabela de Key Codes para javascript vamos aprender algumas formas mais avançadas para criar atalhos de interface para sites utilizando o teclado.

O exemplo simples já foi dado no post da tabela de keycodes, fiz um exemplo um pouco mais complexo que permite verificar quando duas teclas estão pressionadas, para criar atalhos para por exemplo salvar um post que o usuário está escrevendo com o CTRL+S, ou permitir a um usuário da internet utilizar o CTRL+O para abrir um documento...

O exemplo abaixo não utiliza nenhuma biblioteca e comentei as linhas para facilitar o entendimento, segue o código:


var pressedCtrl = false; 

//Quando uma tecla for liberada verifica se é o CTRL para notificar que CTRL não está pressionado
document.onkeyup=function(e){ 
	if(e.which == 17) 
	pressedCtrl =false;
}


// Quando alguma tecla for pressionada:
// Primeiro if - verifica se é o CTRL e avisa que CTRL está pressionado
// Segundo if - verifica se a tecla é o "s" (keycode 83) para executar a ação


document.onkeydown=function(e){
	if(e.which == 17)
		pressedCtrl = true; 

	if(e.which == 83 && pressedCtrl == true) { 
		//Aqui vai o código e chamadas de funções para o ctrl+s
		alert("CTRL + S pressionados");
	}
}

No caso acima utilizei uma variável "pressedCtrl" que controla quando a tecla CTRL está pressionada e só se este caso for true ele executará as ações dos atalhos.

Com jQuery fica quase a mesma coisa - agora sem os comentários.

 


var pressedCtrl = false; 
$(document).keyup(function (e) {
	if(e.which == 17)
		pressedCtrl=false; 
})

$(document).keydown(function (e) {
	if(e.which == 17) 
	pressedCtrl = true; 

	if(e.which == 83 && pressedCtrl == true) { 
		//Aqui vai o código e chamadas de funções para o ctrl+s
		alert("CTRL + S pressionados"); 
	}
});
 

Com os exemplos simples acima é possível incrementar atalhos mais complexos de mais do que 2 teclas, e outras combinações de teclas também.

Agora vamos a um exemplo de atalho de navegação, controlar a paginação de um site pelas teclas direita e esquerda do teclado.  O código abaixo utiliza a tecla da direita para redirecionar a página para a url do link <a> com id="next" e a tecla da esquerda para o link com id "prev".


$(document).ready(function(){
	$("document").keyUp(function(e){
		e.keyCode == 39;
		window.location = $("#next").atrr("href");
	});
	$("document").keyUp(function(e){
		e.keyCode == 37;
		window.location = $("#prev").atrr("href");
	});
});

 

Com um pouco de criatividade é possível aumentar a usabilidade do seu site utilizando estes atalhos - e para interface de intranets é possível melhorar bastante e além da usabilidade aumentar a produtiivdade dos usuários.

Referências

 

 

O que você achou do texto?

  • Muito ruim
  • Ruim
  • Regular
  • Bom
  • Muito bom
Sua opinião é o que faz a comunidade funcionar, colabore para isso!

Tags: javascript, jquery, interface, usabilidade, programacao, internet

Enviar para um amigo
Você pode comentar, assinar o feed, conhecer mais sobre o autor e ajudar a divulgar este artigo em sua ferramenta favorita através dos botões abaixo.
  • Rec6
  • ueba
  • linkk
  • dihitt
  • linkloko
  • websapiens
  • linkto
  • Eu curti

Comentários

Rodrigo Maia
[www]

6/1/2010 10:15:00

Muito bom isso, é uma boa também usar as setas do teclado para fazer um slideshow.
abs!

[Responder este comentário]

Guilherme Serrano
[www]

6/1/2010 10:37:00

Boa! Tem os plugins de jQuery para slides, integrando esses atalhos é possível chamar as funções dos plugins para controlar a exibição dos slides, carrossel, etc... :D

Felipe Borcard
[www]

28/1/2010 23:16:00

cara com idéias como essas e pessoas como vcs tudo está caminhando do jeito que eu gosto! adorei a ideia de slides e carrosel aehaOIheAOIEahuioeaa!! talvez de pra fazer dois carroseis e controlar os dois ao mesmo tempo utilizando a setas no carrossel 1 e as setas do [Numlock] no carrossel 2 rodar os dois ao msm tempo até chegar no local pretendido dos dois ao msm tempo realizando uma combinação! :¬)

[Responder este comentário]

Guilherme Serrano
[www]

29/1/2010 10:13:00

Valeu Felipe! Só tem que cuidar com o excesso de atalhos, que aí pode acabar confundindo o usuário... acho bacana ter vários atalhos, mas acredito que o mouse (o "clique") ainda precisa funcionar pois a maioria dos usuários estão acostumados com isso... ;)

Deixe seu comentário!

Nome (requerido)

E-mail (requerido - não será divulgado)

URL

Quanto é 2 + 9?




web tracker