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


JQuery - Ferramenta para aumentar e reduzir o tamanho da fonte

JQuery - Ferramenta para aumentar e reduzir o tamanho da fonte

Muito bomEste texto foi classificado como Muito bom
Em Internet, Programação
Por Guilherme Serrano
4 de Janeiro de 2009

Tutorial para desenvolver uma ferramente de acessibilidade para o usuário aumentar ou reduzir o tamanho da fonte do site

RSS Acompanhe O Desenvolvedor por Feeds!


Pensando em acessibilidade e atendendo os pedidos que a Bia me fez a algum tempo, desenvolvi para a próxima versão do And After uma ferramenta de acessibilidade para aumentar e reduzir o tamanho das fontes do site.

Esta ferramenta é conhecida de quase todos, o famoso "A+" e "A-" que muitos sites exibem, dando maior liberdade para o usuário e auxiliando a adaptação do usuário a interface do site.

Para desenvolver a ferramenta utilizei a biblioteca jQuery, recomendo a utilização do Google Ajax Libraries para isso.

Primeiro vamos fazer dois botões, um para aumentar e outro para diminuir o tamanho da fonte, no HTML não identifiquei nenhuma ação, apenas setei um ID para cada botão que posteriorimente com o jQuery será utilizado para definir a ação de cada botão. O HTML ficou assim:

 


Optei por não utilizar imagem nenhuma e fazer tudo apenas com CSS, minha folha de estilos da ferramenta ficou assim:

 

div.ferramentas_texto a{
	padding: 4px;
	border: 1px solid #666;
	font-size: 11px;
	font-weight: bold;
	margin-right: 7px;
	width: 16px;
	height: 16px;
	display: block;
	float: right;
	background: #fff;
}
div.ferramentas_texto a:hover{ 
	background: #666;
	border-color: #222;
	color: #fff;
	cursor: pointer;
}

 

Com os dois botões prontos falta atribuir as funções a cada um deles, agora entra o jQuery (o código está explicado abaixo):

 

//Guilherme Serrano - Ferramenta para aumentar e reduzir o tamanho da fonte (jQuery)
//www.odesenvolvedor.com.br
//www.andafter.org

$(document).ready(function(){
var fonte = 13;
    $(´#aumenta_fonte´).click(function(){
		if (fonte<17){
			fonte = fonte+1;
			$(´body´).css({´font-size´ : fonte+´px´});
		}
    });
    $(´#reduz_fonte´).click(function(){
		if (fonte>9){
			fonte = fonte-1;
			$(´body´).css({´font-size´ : fonte+´px´});
		}
    });	
});

 

Neste caso o tamanho padrão da fonte (no CSS) é 13px, portanto minha variável fonte inicialmente tem valor 13. Ao clicar no botão #aumenta_fonte o script verifica se a fonte é menor que 17, valor que estipulei como máximo, se for menor soma 1 a variável fonte e altera o atributo font-size do body. O mesmo processo acontece quando o usuário clica no botão #reduz_fonte.

Você pode definir alterar apenas o tamanho da fonte do conteúdo e não de todo o body, para isso faça alterações como o exemplo abaixo:

 

//Guilherme Serrano - Ferramenta para aumentar e reduzir o tamanho da fonte (jQuery)
//www.odesenvolvedor.com.br
//www.andafter.org

$(document).ready(function(){
var fonte = 13;
    $(´#aumenta_fonte´).click(function(){
		if (fonte<17){
			fonte = fonte+1;
			$(´#content´).css({´font-size´ : fonte+´px´});
		}
    });
    $(´#reduz_fonte´).click(function(){
		if (fonte>9){
			fonte = fonte-1;
			$(´#content´).css({´font-size´ : fonte+´px´});
		}
    });	
});

 

No exemplo acima a fonte alterada seria apenas do elemento com id content, supondo que esta seria a div onde está localizado o conteúdo do seu site.

É isso, uma ferramenta simples que pode melhorar a acessibilidade do seu site, espero ter ajudado.

Dúvidas críticas e sugestões nos comentários, beleza? :)

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: jquery, javascript, acessibilidade, desenvolvimento, programacao

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

Chris Benseler

5/1/2009 00:15:00

O uso da unidade em (font-size:1em) para definiar a dimensão de fontes, quando se usa essa funcionalidade de aumentar/diminuir o tamanho das fontes, é muito mais adequado, Guilherme; dê uma olhada! :)

[Responder este comentário]

Guilherme Serrano

5/1/2009 12:02:00

É verdade Chris, utilizar medidas relativas facilita a manipulação de diversos elementos ao mesmo tempo por exemplo...

Eu infelizmente ainda não sou acostumado a utilizar muitas medidas relativas, mas sei que isso facilita bastante na hora de fazer qualquer alteração no CSS...

Valeu a dica! :D

João F. Melo
[www]

2/2/2009 16:52:00

Muito bom, e para ficar melhor quando o cliente quizer voltar a fonte o temanho "default" é só acrescentar
jQuery(`#normal_fonte`).click(function(){
jQuery(`body`).css({`font-size` : `12px`});

});

obs: no meu codigo tem jQuery pq tbm estou usando mooltools.

[Responder este comentário]

Marcio Soriano

9/6/2009 08:27:00

Esse código funciona com ASP ? Tentei implementar ele no meu código mas não funcionou.

[Responder este comentário]

Guilherme Serrano

9/6/2009 09:05:00

O código funciona (deveria, pelo menos) independente da programação server-side. Não esqueça que o código que publiquei utiliza biblioteca jQuery, você chamou a biblioteca antes Marcio?

Tioni Oliv
[www]

16/6/2009 09:34:00

Olá amigo, não entendo muito de .js mas trabalho muito com CSS, melhorei um pouco o script p/ aumentar tbm a altura da linha, isso faz com que o texto fique mais claro quando é aumentado. Também modifikei a medida para "em". Segue:
$(document).ready(function(){
var fonte = 1;
var line = 1.4;
$(`#aumenta_fonte`).click(function(){
if (fonte<2){
fonte = fonte+0.1;
line = line+0.02;
$(`#content`).css({`font-size` : fonte+`em`,`line-height` : line+`em`});
}
});
$(`#reduz_fonte`).click(function(){
if (fonte>1){
fonte = fonte-0.1;
line = line-0.02;
$(`#content`).css({`font-size` : fonte+`em`,`line-height` : line+`em`});
}
});
});

valeu, t+

[Responder este comentário]

Guilherme Serrano
[www]

16/6/2009 09:37:00

Muito obrigado pela contribuição Tioni! Era o comentário que o Chris havia feito sobre utilizar unidades relativas ao invés de exatas... obrigado :D

Deixe seu comentário!

Nome (requerido)

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

URL

Quanto é 2 + 2?




web tracker