Web standards, arquitetura da informação, usabilidade, acessibilidade, tecnologia, filosofia de buteco (sic), e qualquer coisa em uma casca de noz!

Ir direto para o conteúdo

Animated Scroll em JavaScript

Por: Henrique Pereira

Saturday 25 November 2006 às 14:53

Categoria: HTML / CSS / JavaScript

Semanas atrás eu achei um artigo interessante no Branding Spanking News chamado Animated anchor links with unobstrusive javascript que cria um feito de “scrolling animado” nas âncoras. O JavaScript é sim não obstrusiuvo mas eu não achei elegante a chamada de função no body do HTML da página de exemplo do post do autor do script. Por isso eu alterei o arquivo original e coloquei essa chamada dentro do próprio JavaScript e se quiser utilizar minha versão alterada (a mesma que eu uso aqui no site) sinta-se à vontade. Se preferir utilize a versão original do autor. Só peço o favor de copiar o script para seu próprio servidor ok?

Eu implementei ele aqui no Revolução Etc na forma de um botão “ir para o topo” no canto direito inferior do site. Várias pessoas já me escreveram dizendo que os artigos são grandes demais e que tinham muita rolagem, agora você tem a oportunidade de voltar ao topo do site rapidinho apenas clicando neste botão e se divertir enquanto vê a página sendo escrolada sozinha até o topo. Eu criei uma página de exemplo com o script e a implementação dele isolada para facilitar sua vida na hora de implementar. Basta linká-lo com a tag script que automaticamente o scroling de suas âncoras passaram a ser “animadinhas”.

Âncoras de modo geral ajudam e muito a navegação e a citação de determinados trechos em documentos muito longos como por exemplo este artigo que eu escrevi. Em alguns contextos eu me sinto feliz quando encontro algo do tipo “ir para o topo” onde está a navegação do documento e/ou navegação do próprio site. Contextos com muita rolagem agradecem um recurso como este. Neste exemplo que eu implementei aqui, mesmo que o usuário não tenha JavaScript habilitado, ele funcionará como uma âncora comum. Vale lembrar que a forma com que eu implementei aqui, não funciona no Internet Explorer 6. Não pelo JavaScript mas pelo CSS utilizado.

Para posicionar o botão fixo no canto esquerdo para todos os browsers (nem para o Internet Explorer 6) eu utilizei a seguinte regra de CSS:


.top a {
    width:41px;
    height:41px;
    display:block;
    overflow:hidden;
    font-size:1px;
    text-indent:-200px;
    background:url("http://www.revolucao.etc.br/imagens/topo.gif") no-repeat;
    }

No IE6 não vai funcionar, mas não me preocupei com isso aqui no meu site. Mas o JavaScript funciona sim no Internet Explorer 6, bem como nos outros browsers perfeitamente. Enjoy!

Artigos relacionados:

Este texto não pode ser copiado ou reproduzido em nenhum outro site na íntegra sem autorização do autor!. Mais detalhes sobre licença de uso aqui!



Existem 28 comentários para “Animated Scroll em JavaScript”

# 1° Thalis Valle Saturday 25 November 2006 às 15:55GMT

eu particularmente não muita utilidade. mas nessas horas, não devemos pensar na gente e sim nos usuários.

# 2° Rafael Oliveira Saturday 25 November 2006 às 16:10GMT

Realmente não tem muita utilidade, mas que o efeito deixa a coisa bem mais “biitinha” deixa sim.

Dá pra se divertir vendo a página rolar sozinho, se você não tiver mais nada pra fazer, né! =P

Té! =)

# 3° Anderson Saturday 25 November 2006 às 16:26GMT

Muito interessante esse efeito. Legal mesmo!

Agora em relação a esse botão na direita do site, que volta para o topo da página, eu não vejo muita utilidade nele, sei lá… Não acho que aja necessidade de colocar, é só apertar a tecla ‘HOME’ no teclado que vai pro topo dá página em um piscar de olhos, mas também tem aquele lado do usuário não ter que tirar a mão do mouse, ou ter que levar o dedinho da outra mão! =P

# 4° Alenônimo Saturday 25 November 2006 às 17:38GMT

Para quem tem o scroll no mouse, esse botão é bastante inútil. Mas estamos no Brasil e é comum o povo não ter um mouse sofisticado. Acho a idéia válida.

# 5° Bruno Chaves Saturday 25 November 2006 às 22:33GMT

muito legal este script, na http://script.aculo.us/ tem como fazer esse efeito tb.
por sinal, a scriptaculous tem efeitos sensacionais :)
eu estou fazendo uns estudos usando ela combinada com http://bennolan.com/behaviour/ e to fazendo coisas bem interessantes sem uma linha de javascritp inline

# 6° Mário Sérgio Ontivero Monday 27 November 2006 às 06:03GMT

Não é algo só legalzinho. Sob o ponto de vista da usabilidade, esse comportamento nas âncoras favorece a navegação, principalmente para usuários normais, sobretudo em interfaces com conteúdo extenso.
Valeu pela dica!

# 7° Carlo Eduardo Papacidero Monday 27 November 2006 às 07:41GMT

Sexta feira estava eu atrás desse script que nem louco e não consegui encontrar de jeito nenhum ! E agora abro meus Feeds e vejo esse post ! Perfeito ! Bem na hora certa ! Abraços !

# 8° Marcelo Monday 27 November 2006 às 08:24GMT

O css que mostrou no corpo do post, ele sozinho não deixa o botão no canto direito!? deixa?

Sem querer ser chato, vc não confundiu direita com esquerda tb não?

É dúvida minha msm!

# 9° Augusto Monteiro Monday 27 November 2006 às 09:10GMT

O efeito é bacana e é útil pelo fato do usuário não se perder dentro da própria página com os textos linkados aparecendo de forma rápida na sua frente quando clica em um link de ancora mas perde o sentido se não tiver uma forma de usuários de IE não poderem visualizar…

# 10° Caciano Gabriel Monday 27 November 2006 às 09:53GMT

Cool…

# 11° Rogério Brum Monday 27 November 2006 às 10:21GMT

Eu deixaria a movimentação mais veloz (pq demora muito a chegar no topo) e colocaria no botão um png transparente (em 800×600 o botao vira um quadrado).

O efeito é interessante para outros casos.

# 12° Marcelo Macedo Monday 27 November 2006 às 10:39GMT

Muito legal! ótimo para textos longos e fácil de implementar, vamos usar nos nossos sites.

Thanks

# 13° Carlos Monday 27 November 2006 às 11:44GMT

O efeito é bacana, mas acho que é uma demora desnecessária esperar rolar toda a página para chegar no topo.

Um simples toque no “Home” do teclado é suficinte.

Mas é bacana conhecer o efeito e quem sabe ele pode ser útil em algum momento.

# 14° Douglas d'Aquino Monday 27 November 2006 às 11:53GMT

Excelente dica, valeu!

essa é uma boa para implementar naqueles sites horizontais (como o da InterCon 2006). Fica um pouco mais “chique” haha.

também achei meio estranho chamar a função no body, mas ainda bem que alguém corrigiu a tempo.

[]‘s

# 15° Andre Monday 27 November 2006 às 12:51GMT

Bruno, também tenho usado bastante o Behaviour e ele, combinado ou não a outros frameworks ou bibliotecas, tem tido excelentes resultados.
Sobre o topo, achei o efeito bacana, mesmo que não vá usar.

# 16° Rafael Marin Monday 27 November 2006 às 18:28GMT

Gostei bem legal esse efeito. Já vi em alguns sites “horizontais”, onde o menu era fixo embaixo e o conteúdo deslizava suavemente.

[]s

# 17° Igor Escobar Tuesday 28 November 2006 às 08:23GMT

Eu acho que quanto mais experiências pudermos proporcionar aos usuário melhor.

Gostei do post eu sempre estou criando uns JsFx em casa quando sobra tempo para causar um certo impacto no usuário.

# 18° Chan Wednesday 29 November 2006 às 07:51GMT

Bacana sim, mas ainda prefiro ancora é mais rápido.
Abraços…

# 19° Lucas Castro (pingback) Monday 04 December 2006 às 11:46GMT

[...]7. Scroll animado em javascript[...]Imperdíveis, não deixem de ler.[...]

# 20° henrique Sunday 24 December 2006 às 23:29GMT

para esse efeito e show como no meu site la os textos sao grandes ,muito util

# 21° ExtremaOnLine Wednesday 23 January 2008 às 21:49GMT

Legal este código. Assim que puder irei colocar em meu site.
Obrigado

# 22° Edson Saturday 02 February 2008 às 01:46GMT

Olá, Parabéns pelo script, mas eu precisaria deste scritp na vertical será que teria como alterar para mim e enviar-me por e-mail, Valeu!

# 23° gadarf Thursday 24 April 2008 às 01:55GMT

Muito útil vou testar.

# 24° Rafael Friday 22 August 2008 às 03:13GMT

Legal, mas só funciona em conteúdos que tem barra de rolagem lateral. Eu queria utilizar ele em um site que não tem barra de rolagem e não funfo.

# 25° Juliano Ribeiro Tuesday 04 November 2008 às 19:33GMT

Olá companheiro, achei muito interessante o artigo.
Sou iniciante, portanto não estranhe a pergunta, mas e seu eu quiser fazer um scroll lateral? Digamos que o site seja completamente horizontal, há como fazer esse scroll lateralmente?

Grato

# 26° Claiton Monday 13 July 2009 às 21:50GMT

“Você fez uma busca no http://www.google.com.br por javascript mouse scroll”

Se fui eu que fiz a busca, obviamente eu já sei que a fiz e sei qual o(os) termo(s) que eu pesquisei e não tem porque vocês me digam o que eu pesquisei.

Sinto como se vocês estivessem me tratando como um idiota retardado.

Deixe um comentário

Observação: Todos os campos obrigatórios estão marcados com um asterisco (*).

Informações de Contato

Sobre o Revolução Etc

Henrique Costa Pereira O Revolução Etc é o site pessoal do Henrique C. Pereira que trabalha com design de interfaces, planejamento, arquitetura da informação e desenvolvimento para web. Ele escreve aqui sobre várias coisas relacionadas com acessibilidade, web standards, tecnologia, desenvolvimento e o que mais der na telha, além de eventualmente escrever alguma coisa ou outra para o Webinsider. Leia mais.

Publicidade

  • Banner
  • Banner

Henrique Costa Pereira - Revolução Etc - (CC) Alguns Direitos Reservados - Powered by WordPress

O conteúdo deste site de autoria de Henrique Costa Pereira está sob a licença de Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil. Permissões e/ou restrições além do escopo desta licença podem ser vistas e/ou requeridas na minha página de licença.

Nenhum conteúdo deste site pode ser copiado e reproduzido em outro site sem autorização do autor! Mais detalhes aqui!

Powered by WordPress