JQuery – Ferramenta para aumentar e reduzir o tamanho da fonte

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
//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
//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? 🙂

Menu Accordion com JQuery (sem plugin)

Quanto mais estudo mais eu gosto de jQuery, e as possibilidades de uso aumentam a cada leitura. 🙂

Resolvi aplicar jQuery na base (framework, huh?) que utilizo para as intranets de meus clientes e isso foi responsável por grande parte do meu aprendizado, estou aplicando também na nova versão do And After (resultado do meu TCC sobre usabilidade: análise heurística).

Desenvolvi os wireframes navegáveis do And After para fazer testes de navegação mais próximos do real possível e para isso utilizei menu accordion.

Não gosto de utilizar *muitos* plugins por três motivos principais:

  • Aumento do carregamento
  • Possível incompatibilidade
  • Falta de controle (somente em alguns casos)

 Porém não sejamos xiita, se existe algo pronto, bom, e que não irá atrapalhar o carregamento ou o funcionamento de nada, porque não utilizar? 🙂

 

Menu accordion com jQuery

Pouco código, simples e leve.

javascript

 

$(document).ready(function(){
$(´[rel="cont_autor"]:not(:first)´).hide();
$(´[rel="nav_autor"]´).click(function(){
     $(´[rel="cont_autor"]:visible´).slideUp("normal");
     $(this).next().slideDown("normal");
          return false;
});
});

A primeira linha apenas "dá start" no código, para ele ser carregado quando o documento estiver pronto.

Depois procuro os conteúdos dentro do meu menu (usando o atributo rel="cont_autor"), como vocês podem ver no html ali em baixo. Todos os conteúdos são escondidos, menos o primeiro, que por padrão estará sempre aberto no meu menu.

Quando clicar no item com atributo rel="nav_autor" então escondo todos os conteúdos visíveis utilizando o slideUp e pego o elemento depoisdo navegador (o conteúdo que está logo abaixo) e mostro ele utilizando o slideDown.

 

html

 

Últimos artigos do autor

Últimos comentários do autor

Últimas leituras do autor

Nesse caso usei h4 para definir os títulos e linhas de navegação, o correto é utilizar definition list (dl), mas meu objetivo aqui era apenas mostrar o funcionamento do menu independente da estruturação do html.

Simples e funcional, sem carregar nada desnecessário. 🙂

dicas

Weekday() – Dia da semana em ASP

Estava fazendo umas rotinas para melhorar a auto-organização de algumas novidades do And After e lembrei como eu achava chato a manipulação de datas quando comecei a programar.

Hoje vou explicar como funciona apenas o weekday em ASP, que serve para pegar o dia da semana de uma data.

 

Pegando o dia de hoje

Para ter como resultado o dia da semana de hoje o código é

 weekday(now()) 

Isso vai resultar um número, equivalente ao dia da semana, segindo a ordem lógica (que coloquei aí abaixo):

  • 1 – Domingo
  • 2 – Segunda-feira
  • 3 – Terça-feira
  • 4 – Quarta-Feira
  • 5 – Quinta-Feira
  • 6 – Sexta-Feira
  • 7 – Sábado

 

Dia da semana de uma data qualquer

Bom, utilizando o weekday eu acabei de descobrir que nasci em uma Quinta-Feira, ao invés de usar now() que recupera a data atual inserimos a data que queremos lá.

  weekday("19/01/2007")  

 

Transformando o número em palavra (segunda, terça…)

Depois de recuperar o dia da semana você pode transformar o número retornado em palavra, para isso vamos utilizar um array

arrayDS = array("Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado")

diadasemana = arrayDS(weekday(now())-1)

Como o array começa em ZERO e a resposta do weekday começa em 1 faço a subtração por 1 para ajustar o numeral do dia da semana com o array.

 

Simples, fácil e nenhuma novidade para quem já programa.

Dedicado aos iniciantes!

 

Quer aprender mais?

Cookies em ASP

Dando uma quebra nos textos hard-developer do @chris, resolvi escrever um post simples e rápido sobre um assunto mais simples ainda: cookies em ASP.

Uma leitura rápida sobre:

  1. O que são cookies
  2. Porquê usar cookies?
  3. Programando
    1. Criar um Cookie
    2. Configurar um Cookie
    3. Ler um Cookie
  4.  Dicas e macetes

 

O que são cookies?


Isso são cookies.

 

"Cookies" são dados que ficam armazenados no computador do usuário em formato de texto e podem ser resgatados pelo servidor em outro momento, mesmo que o usuário saia do site e feche o navegador esses dados podem ficar armazenados.

Permitir ou não o uso de cookies é uma opção do usuário e a maioria dos navegadores por padrão aceita o uso deles.

 

Porquê usar cookies?

Usar cookies ou session? Vamos lá…

A session sempre é fechada quando o usuário não está navegando no seu site, para informações que podem ficar guardadas sempre você pode (e deve) utilizar cookies.

Por exemplo, o usuário fez um comentário no seu site, a próxima vez que ele for comentar já estará gravado no formulário o seu nome e e-mail pois estes foram armazenados em cookies quando ele executou essa ação pela primeira vez.

Escrevi aqui como fazer um sistema de login em ASP que utiliza apenas session, quando o usuário fica muito tempo sem nenhuma ação ou quando ele fecha a página ele automaticamente é deslogado, se as informações fossem gravadas através de cookies ele poderia permanecer logado.

Definir quando utilizar Cookies e Sessions depende da intenção e segurança que a aplicação que está sendo desenvolvida deve ter.

 

Programando

Agora que você já sabe como funciona e quando deve ser utilizado, vamos botar a mão na massa e descobrir como criar, ler e configurar cookies em ASP[bb] . 😀

Como criar um Cookie em ASP?

Para criar um cookie em ASP é extremamente simples, vamos ao código:

<%
Response.Cookies("usuario").item("apelido") = "Guilherme Serrano"
Response.Cookies("usuario").item("site") = "https://andafter.org"
%>

Neste caso foi armazenado um cookie chamado usuario que tem dois itens, um chamado apelido com valo de Guilherme Serrano e outro chamado site com valor de https://andafter.org

 

Como configurar um Cookie em ASP?

Cookies não tem muito o que configurar, mas você pode determinar o tempo de expiração, ou seja, até quando este cookie deve ficar armazenado no computador do usuário.

<%
Response.Cookies(“usuario”).Expires = “01/07/2008”
%>

Neste exemplo você tem uma data definida para que o cookie expire, e esta linha só serve para ilustrar como funciona pois dificilmente você determina datas fixas para um cookie expirar, né?

Então você pode usar o seguinte código:

<%
Response.Cookies(“usuario”).Expires = DateAdd("d",7,Now)
%>

Agora você definiu que o cookie usuário tem 7 dias de duração, através do DateAdd. O que você fez foi somar 7 dias "d",7 a data atual Now.

 

Como ler um Cookie em ASP?

Você gravou as informações no computador do usuário, vamos ao código para receber essas informações:

<%=Request.Cookies(“usuario”).item("apelido")%>

Simples assim, usando o exemplo anterior nesse caso você teria como retorno Guilherme Serrano. Um exemplo prático, no formulário de comentar deixar preenchido com o apelido do usuário:

<form action="comentar.asp" method="post">
<input type="text" value="<%=Request.Cookies(“usuario”).item("apelido")%>">
</form>

 

Dicas e macetes

Quando você não define data de expiração o cookir funciona como uma session (chamado cookie de sessão) e é apagado logo que o usuário sai da página.

Pense bem se é melhor usas cookies ou session, cookies não oferecem segurança: as informações gravadas podem ser acessadas a qualquer momento por qualquer usuário do computador que saiba (ou não!) o que está fazendo. Não grave senhas e dados confidenciais em cookies, se isso for necessário (nunca é, pois sempre existem outros métodos) utilize algum sistema de criptografia.

Em um sistema de login por exemplo, se o usuário estiver em um computador público ele ficará logado e a próxima pessoa que acessar o site terá acesso a conta da pessoa – para evitar isso o usuário deve ter a opção ao se logar de "lembrar de mim" ou não. 😉

Para gerar corretamente cookies que utilizam variáveis dinâmicas para o nome você precisa deixar a opção Buffer como true, pra isso insira no início da página a linha:

<%
´Torna o Buffer True
Response.Buffer = True
variavel = "apelido"
´Gera um cookie com uma variável, se o buffer não estivesse como true esse cookie não seria gerado corretamente.
Response.Cookies("usuario").item("" & variavel & "") = "Guilherme Serrano"
%>

 

Bom, se alguém tiver alguma coisa para adicionar comentem aí que eu atualizo o post, certo? 😉

CSS3 – vai ou não vai?

Depois de muito tempo, consegui colocar (em parte) em dia a leitura dos meus feeds. E me deparei com esse artigo que fala um pouco sobre o CSS3: dá dicas de alguns frameworks, manuais de boas práticas e o que pode ser feito e o que as empresas (e fundações) que cuidam dos browsers tem feito para dar suporte ao CSS3.

Para quem trabalha com desenvolvimento web, a simples olhada no que o CSS3 se propõe a nos disponibilizar nos faz abrir um belo sorriso. Digno de emoticon

Poder colocar imagens, sombras, curvas, etc… nas bordas, uso de seletores mais potente, múltiplos backgrounds, etc… farão (algum dia) a vida do desenvolvedor de interfaces ficar mais produtiva.

O grande problema, ainda, é o suporte: poucos browsers dão suporte a esses padrões novos. O Opera 9.5 é o mais avançado, enquanto o Firefox 3 que saiu recentemente dá um suporte bem menor. E a Microsoft diz que em 5 (?????) anos a versão do IE terá todo o suporte ao CSS3.
Até lá, muita gente ainda estará usando versões antigas do IE (que não terão tal suporte), e dificilmente o IE perderá em 5 anos a hegemonia de mercado. Logo, infelizmente, pouca luz no fim do túnel é vista para quem quiser aplicar o CSS3 sem se preocupar em escrever folhas de estilo diferentes para browsers diferentes

De qualquer forma, fica a dica do CSS3 Info que fala a respeito das novas implementações e dá exemplos. E ainda há a documentação oficial da W3C; um pouco mais confusa, mas é a referência mais profunda a respeito.