Animated Scroll em JavaScript

Por: Henrique Costa PereiraSaturday 25 November 2006 às 14:25

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!

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!

Tags: CSS JavaScript Usabilidade scroll

28 Comentários para “Animated Scroll em JavaScript”

# 1° Thalis Valle Saturday 25 November 2006 às 03:25 PM GMT

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 04:25 PM GMT

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 04:25 PM GMT

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 05:25 PM GMT

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 10:25 PM GMT

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:27 AM GMT

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:27 AM GMT

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:27 AM GMT

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:27 AM GMT

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:27 AM GMT

Cool…

# 11° Animated Scroll em JavaScript « [REF] Monday 27 November 2006 às 10:27 AM GMT

[...] Link [...]

# 12° Rogério Brum Monday 27 November 2006 às 10:27 AM GMT

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.

# 13° Marcelo Macedo Monday 27 November 2006 às 10:27 AM GMT

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

Thanks

# 14° Carlos Monday 27 November 2006 às 11:27 AM GMT

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.

# 15° Douglas d'Aquino Monday 27 November 2006 às 11:27 AM GMT

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

# 16° Andre Monday 27 November 2006 às 12:27 PM GMT

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.

# 17° Rafael Marin Monday 27 November 2006 às 06:27 PM GMT

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

[]s

# 18° Igor Escobar Tuesday 28 November 2006 às 08:28 AM GMT

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.

# 19° Chan Wednesday 29 November 2006 às 07:29 AM GMT

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

# 20° Lucas Castro (pingback) Monday 4 December 2006 às 11:4 AM GMT

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

# 21° henrique Sunday 24 December 2006 às 11:24 PM GMT

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

# 22° ExtremaOnLine Wednesday 23 January 2008 às 09:23 PM GMT

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

# 23° Edson Saturday 2 February 2008 às 01:2 AM GMT

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!

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

Muito útil vou testar.

# 25° Rafael Friday 22 August 2008 às 03:22 AM GMT

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.

# 26° Juliano Ribeiro Tuesday 4 November 2008 às 07:4 PM GMT

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

# 27° Screencaster » jQuery Smooth Scroll permite que você faça scrolls animados Saturday 24 January 2009 às 04:24 PM GMT

[...] conhecia há um tempo esta solução para fazer scroll animado em sites. Trata-se de uma solução legal e que funciona bem, no entanto ela tem certas [...]

# 28° Claiton Monday 13 July 2009 às 09:13 PM GMT

“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.

Avisos
Os itens com asterisco ( * ) são campos de preenchimento obrigatório.
Todos os links inseridos nos comentários possuem o atributo rel="nofollow" para impedir com que user agents (como os mecanismos de busca) sigam os links inseridos para desestimular spammers.
Todos devem se identificar através de e-mail válido.
Os e-mails dos usuários não serão divulgados no site.
Comentários:


Assine por feed

assinantes Assine o feed do Revolução Etc

Sobre o Revolução Etc

Foto do autor 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.

Livros que vão colocar minhocas na sua cabeça:

  • SEO Otimização de Sites - Paulo Teixeira
  • Não me faça pensar! - Steve Krug
  • Google Adwords a Arte da Guerra - Ricardo Vaz Monteiro
  • Design para Internet: Projetando a Experiência Perfeita - Felipe Memoria
  • Sopro no Corpo: Vive-se de Sonhos - Marco Antônio de Queiroz (MAQ)
  • 250 Segredos para Web Designers - MOLLY E. HOLZSCHLAG
  • O design do dia a dia - DONALD A. NORMAN
  • Ser e o Nada - Jean-Paul Sartre
  • Apocalípticos e Integrados - Umberto Eco
  • Ergodesign e Arquitetura de Informação - LUIZ AGNER
  • The Art and Science of Web Design - Jeffrey Veen
  • Ansiedade de Informação 2 - RICHARD SAUL WURMAN
  • Criando Páginas Web com CSS - ANDY BUDD, CAMERON MOLL, SIMON COLLISON
  • Mobile Web Design - Cameron Moll
  • Sigam-me no Twitter

Me encontre

Lugares onde digitalmente eu costumo estar presente.

Anúncios

Blogroll:

Alguns sites interessantes e blogs de amigos que eu leio com frequência. Em ordem alfabética.

Pessoas que trabalham comigo:

Sites dos colegas de trabalho na Webroom.

Já trabalharam comigo:

Som que faz a minha cabeça!

Procurando inspiração? Esta é uma breve lista do que eu ouço!

  • Diana Krall - The Very Best Of
  • U2 - How to dismantle an atomic bom
  • U2 - 18 singles
  • The Essential - Bob Dylan
  • Bob Dylan - Modern Times
  • Miles Davis - Cool & Collected
  • Miles Davis - Prestige Profiles Vol 1
  • Pink Floyd - The Division Bell
  • Pink Floyd - The wall
  • Pink Floyd - Delicate Sound Of Thunder
  • John Coltrane - The Best of John Coltrane
  • The beatles - The Beatles 1