Aprenda a fazer a brincadeira do Google - Do a barrel roll

Bem vindo ao Blog Ernande Linhares
7 de Fevereiro, 2013

Um pouco da história do meme: do a barrel roll

Quem já digitou a expressão do a barrel roll no campo de pesquisa da Google, viu a sua tela girando em 360 graus. Este efeito foi inspirado no jogo Starfox 64.

Veja o efeito em funcionamento: do a barrel roll.

Então como fazer...

Para fazer este efeito são necessárias três etapas: a primeira é a criação de um documento Html simples, exemplo:

<!DOCTYPE html>
<html>
    <head>
        <title>Exemplo do a barrel roll</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <!-- css externo: estilo basico e a classe .barrel-roll -->
        <link rel="stylesheet" type="text/css" href="barrel-roll.css" />
        <!-- jquery via CDN, para facilitar a manipulacao do DOM -->
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <!-- script externo para manipular o DOM, atribuir a classe e remove a mesma -->
        <script type="text/javascript" src="barrel-roll.js"></script>
    </head>
    <body>
        <div>
            <h1>Exemplo do a barrel roll do Google</h1>
            <p>Um memo do jogo Starfox 64, que virou uma brincadeira do Google</p>
            <a href="#" class="do-a-barrel-roll" title="efeito do a barrel roll">Click e veja o efeito do a barrel roll do Google</a>
        </div>
    </body>
</html>

A próxima etapa é criar um arquivo com o nome de barrel-rool.css, que conterá a classe .barrel-roll responsável em fazer o efeito de girar o elemento do DOM em 360 graus, exemplo:

body{
    background: #eee;
    font-family: Arial, Helvetica, sans-serif;
}
.do-a-barrel-roll{
    color: #900;
}

/* ------- INICIO DA CLASSE RESPONSAVEL EM GIRAR O ELEMENTO EM 360 GRAUS ---*/
@-moz-keyframes roll { 100% { -moz-transform: rotate(360deg); } }
@-o-keyframes roll { 100% { -o-transform: rotate(360deg); } }
@-webkit-keyframes roll { 100% { -webkit-transform: rotate(360deg); } }
@keyframes roll { 100% { transform: rotate(360deg); } }

.barrel-roll {
    -moz-animation-name: roll;
    -moz-animation-duration: 4s;
    -moz-animation-iteration-count: 1;
    -o-animation-name: roll;
    -o-animation-duration: 4s;
    -o-animation-iteration-count: 1;
    -webkit-animation-name: roll;
    -webkit-animation-duration: 4s;
    -webkit-animation-iteration-count: 1;
    animation-name: roll;
    animation-duration: 4s;
    animation-iteration-count: 1;
}
/* ------- FIM DA CLASSE RESPONSAVEL EM GIRAR O ELEMENTO EM 360 GRAUS ---*/

O terceiro e último passo é a criação de um arquivo com o nome de barrel-rool.js, que será o arquivo responsável em atribuir e remover a classe .barrel-roll do elemento DOM, exemplo:

function removeBarrelRoll(){
    $('body').removeClass('barrel-roll'); //remove a classe .barrel-roll do elemento body
}

$(document).ready(function(){
   $('.do-a-barrel-roll').click(function(){ //ao clicar no(s) elemento(s) .do-a-barrel-roll
       $('body').addClass('barrel-roll'); //adiciona a classe barrel-roll no elemento que deseja o efeito, no caso, no body
       setTimeout('removeBarrelRoll()', 4000); //como o efeito demora 4 segundos devo remover a classe, do elemento, para que ao clicar novamento o efeito volte a funcionar
       return false;
   });
});

Observação: Se caso o efeito não funcione pode ser que você esteja utilizando um IEBurro, Oops, quero dizer uma versão do Internet Explorer inferior a versão 10, então peço em nome de todos os desenvolvedores que atualize o seu navegador para a versão 10 ou de preferência utilize outro navegador, obrigado pela compreensão. Você pode baixar o exemplo aqui