Como criar neve animada em um site (com CSS e JavaScript)

Neste tutorial, vamos implementar um efeito de neve animado em uma página da Web usando CSS e JavaScript simples, bem a tempo para as festas de fim de ano.

‘Esta é a estação para ser alegre, então deixe nevar, deixe nevar, deixe nevar!

1. Marcação com HTML de feriado

Para nossa marcação, teremos dois contêineres principais: um elemento principal contendo o conteúdo de nossa página e um elemento snow-container que exibirá a neve.

2. Estilização da temporada com CSS

Nesta demonstração, nosso conteúdo principal tem uma cor de fundo gradiente para dar um efeito de céu noturno. Conseguimos isso usando a função de gradiente linear do CSS.

Para simplificar, digamos que estamos construindo isso no CodePen, então a marcação vai na aba HTML, os estilos na aba CSS, etc.

Aqui está a aparência do nosso banner agora:

Um banner de gradiente azul com texto Boas FestasUm banner de gradiente azul com texto Boas FestasUm banner de gradiente azul com texto Boas Festas

Também usaremos CSS para lidar com a animação de cada elemento de neve. Cada floco de neve terá duas animações: uma animação de queda para lidar com o movimento do floco de neve de cima para baixo na tela e uma animação de oscilação para lidar com o movimento lento do floco de neve de um lado para o outro.

Também estilizaremos nosso contêiner de neve e o elemento de neve que criaremos em JavaScript.

A propriedade de animação nesta demonstração assume três valores:

  • name: Este é o valor da animação que criamos nos quadros-chave.

  • timing: Isso determina como a animação progride.

  • iteração: Este é o número de vezes que a animação acontece. Usamos infinito para repetir constantemente a animação dos flocos de neve.

3. Fa la la la la Funcionalidade ♬

Agora podemos trabalhar na parte divertida: fazer nevar! Primeiramente, na aba JS do CodePen, vamos atribuir um valor ao nosso elemento container:

Para nosso conteúdo de floco de neve, usaremos símbolos HTML (❄ ❅ ❆):

Personagens de floco de neve usando código HTMLPersonagens de floco de neve usando código HTMLPersonagens de floco de neve usando código HTML

Criaremos um array snowContent para conter os códigos dos símbolos

Para criar um efeito de neve caindo, precisamos randomizar a aparência e a animação de cada floco de neve.

vamos usar o Math.random() e Math.floor() funções para lidar com a geração de valores aleatórios para nossos elementos de neve.

Agora podemos criar uma função para gerar um estilo aleatório para cada floco de neve. Vamos gerar uma posição aleatória, tamanho e duração da animação.

Para nossa constante de duração e tamanho, adicionamos um valor de número fixo para garantir que o número gerado aleatoriamente tenha um valor mínimo do número que está sendo adicionado (ou seja, o menor número para a duração da animação de qualquer floco de neve é ​​10s)

Para nossa constante superior, atribuímos um valor negativo para que os flocos de neve comecem em qualquer porcentagem acima da tela visível.

Em seguida, cuidaremos de anexar os flocos de neve ao recipiente de neve.

Nesta demonstração, usamos um por loop para criar um número fixo de flocos de neve e anexá-los ao contêiner. Também atribuímos aleatoriamente o innerHTML como qualquer um dos valores em nosso snowContent variedade.

Então, vamos chamar o createSnow funcionar assim que nossa página for carregada usando o ouvinte de evento load.

E está nevando! Clique Repetir para ver a neve animada:

Removendo flocos de neve

Também podemos optar por adicionar uma função para remover os flocos de neve.

Nesta função, atribuímos ao nosso snowContainer uma opacidade de 0 para permitir que ele desapareça suavemente e, depois de meio segundo, removemos o contêiner usando o .remove() método.

Podemos então optar por chamar essa função como quisermos. Podemos remover a neve quando o usuário clicar em qualquer lugar da página:

Ou podemos incluí-lo na função setTimeout() para que desapareça após um determinado período de tempo:

Trocando os flocos de neve

Como construímos isso do zero, também podemos atualizar o conteúdo e a animação do elemento para criar outros efeitos divertidos, como balões flutuantes:

ou mesmo Nyan Cat animado:

Espero que você tenha gostado deste tutorial animado de neve e que tenha feito você se sentir bem e festivo!

Deixe uma resposta