O Em Busca do Código é um site em formato de plataforma EAD aberta e gratuita.

Aprendendo e ensinando, essa é a minha regra para mim.

Você fez mais da metade do no nosso mini curso de Parallax.

Publicado dia 28 de setembro de 2017, atualizado (codigo fonte) dia 05 de novembro de 2017.

Compre um adesivo do Em Busca do Código.

Publicidade

Publicidade

Publicidade

9º exercício: Rotacionando elemento com parallax (scroll)

Publicidade

Neste exercício nós rotacionamos um elemento HTML, isso utilizando a rolagem da tela como base, mas como assim?

Quando o usuário estiver descendo pela página o elemento ira girar em um sentido, e quando estiver subindo irá girar em outro sentido. Parece simples e, no final do exercício anterior informei que é simples, mas, é bem simples.

O código fonte inicial deste exercício é o código fonte final do exercício anterior, dica. Aumente o número de pixels que fazem com que o cabeçalho reapareça, ou, se preferir, pode excluir esse efeito. Eu irei exclui-lo. Então, o meu JS começa em branco, mas nada o impede de utilizar esses efeitos em conjunto.

Não se esqueça do padrão de nome dos arquivos e de linkar os novos arquivos CSS e JS em seu HTML, e alterar o título também.

Vídeo:

Publicidade

Neste exercício nós iremos rotacionar o texto da imagem.

Nosso JavaScript começará um pouco diferente, isso com relação aos outros arquivos JS deste ebook. Vamos começar criando duas variáveis, que serão responsáveis por rotacionar o que queremos rotacionar, cada uma será responsável por rotacionar em uma direção.

var rotate = "";
var gira = "";

E agora sim criamos nossa função.

function girando() {
}

A primeira informação que inserimos na função é criar a variável responsável por verificar a quantidade de pixels que a página já rolou verticalmente.

var desceSobe = window.scrollY;

Logo em seguida dizemos que uma das variáveis que, por uma questão de escolha criei fora da função, é igual ao número de pixels que a página já rolou verticalmente.

rotate = desceSobe;

Antes da próxima linha JS, preciso informar que, vamos ver a quantidade de pixels que a página web já rolou. E para isso escolhi criar uma <p> em nosso HTML.

<p class="escrever"></p>

E com CSS vamos deixar ela fixa e sempre visível.

.escrever {
    position: fixed;
    margin-left: 1200px;
    top: 20%;
    background-color: aqua;
    font-size: 2em;
}

Lembra que antes eu citei que tínhamos que testar, pois bem, agora conseguimos ver. Voltando ao JS.

Na próxima linha do nosso JS vamos informar, através de um querySelector que, nesta <p> irá aparecer o número de pixels que a página web já rolou verticalmente.

document.querySelector(".escrever").innerHTML = rotate;

Adicione um addEventListener no final da nossa função e teste em seu navegador.

window.addEventListener('scroll', girando);

Considero este exemplo bem legal. Na hora que estiver inserindo isso realmente em um projeto para ser colocado em prática, você não precisa deixar isso visível, mas neste exercício essa <p> será visível. Considero que é muito legal ver a variável que estamos trabalhando.

Voltando ao nosso exercício, precisamos pegar o valor que aparece, e para isso utilizamos a nossa segunda variável declarada fora da nossa função.

gira = document.querySelector('.escrever').value;

Algumas informações que já apresentei não precisariam, mas, achei interessante, pois fica mais fácil de entender com essas redundâncias. Agora está na hora do nosso if, e ele é bem simples. Se a variável gira for igual a variável rotate, determinado elemento HTML gira.

  if (gira = rotate) {
      document.querySelector(".textoimg").style.transform = "rotate("+rotate+"deg)";
  }

Teste em seu navegador e veja funcionando. Mas nesse momento vemos algo muito interessante. O elemento não volta certinho, a 0 (zero) de rotação ao voltarmos para o topo.

Para isso precisamos zerar uma dessas variáveis dentro do if.

gira = 0;

E pasme, retirar o querySelector de dentro do if. Caso tenha ficado em dúvida, o código fonte fica assim.

  if (gira = rotate) {gira = 0;}
    document.querySelector(".textoimg").style.transform = "rotate("+rotate+"deg)";

Este código fonte está funcionando assim, mas como eu citei anteriormente, existem redundâncias. Está aí um ótimo exercício. Retire as redundâncias e boa sorte.

A seguir você confere o código fonte final (JavaScript), como foi adicionado apenas um elemento no HTML e a configuração do mesmo, não postarei o código fonte final do CSS e do HTML neste exercício, mas eles são extremamente simples, você não terá dificuldade com eles.

Caso queira ajuar o projeto você pode comprar o ebook ou um adesivo.

Link para adquirir o ebook.

Código fonte JavaScript final:

var rotate = "";
var gira = "";

function girando() {
    var desceSobe = window.scrollY;
    rotate = desceSobe;
    document.querySelector(".escrever").innerHTML = rotate;
    gira = document.querySelector('.escrever').value;

  if (gira = rotate) {gira = 0;}
    document.querySelector(".textoimg").style.transform = "rotate("+rotate+"deg)";
 
}
    window.addEventListener('scroll', girando);

Como já concluiu esse exercício deve saber que falta apenas mais um exercício para concluir esse ebook/curso aberto.

Se estiver utilizando bloqueador de propaganda, por favor, coloque este site na lista branca (isto sempre será apenas um pedido). Obrigado pela escolha.