Como criar um efeito de rolagem paralaxe com CSS puro em Chrome

introdução

CSS moderno é uma ferramenta poderosa que você pode usar para criar muitas funcionalidades de interface de usuário avançada (UI). No passado, essas características eram baseadas em bibliotecas JavaScript.

neste guia, você irá configurar algumas linhas CSS para criar um efeito de paralaxe rolante em uma página web. Você irá usar imagens de placekitten.com como imagens de fundo de substituição.

Você terá uma página web com um puro efeito de paralaxe scrolling CSS depois de ter completado o tutorial.advertência: Este artigo usa propriedades experimentais de CSS que não funcionam entre navegadores. Este projeto foi testado e funciona no Chrome. esta técnica não funciona bem no Firefox, Safari e iOS devido a algumas das otimizações desses navegadores.

Passo 1 — Criar um novo projecto

nesta etapa, use a linha de comandos para configurar uma nova pasta e ficheiros do projecto. Para iniciar, abra o seu terminal e crie uma nova pasta de projecto.

escreva o seguinte comando para criar a pasta do projecto:

  • mkdir css-parallax

neste caso, você chamou a pasta css-parallax. Agora, mude para o css-parallax pasta:

  • cd css-parallax

em seguida, crie uma index.html arquivo no seu css-parallax pasta com o nano comando:

  • nano index.html

Você vai colocar todo o HTML para o projecto deste arquivo.

no próximo passo, você vai começar a criar a estrutura da página web.

Passo 2-Configurar a estrutura da aplicação

neste passo, irá adicionar o HTML necessário para criar a estrutura do projecto.

dentro do seu index.html ficheiro adicionar o seguinte código:

css-parallax / índice.html
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>CSS Scrolling Parallax</title> </head> <body></body></html>

Esta é a estrutura básica da maioria das páginas web que usamHTML.

aditar o seguinte código dentro do <body> tag:

css-parallax/índice.html
 <body>... <main> <section class="section parallax bg1"> <h1>Cute Kitten</h1> </section> <section class="section static"> <h1>Boring</h1> </section> <section class="section parallax bg2"> <h1>Fluffy Kitten</h1> </section> </main>...</body>

este código cria três secções diferentes. Dois terão uma imagem de fundo, e um será um fundo estático e simples.

nos próximos passos, irá adicionar os estilos para cada secção, usando as classes que adicionou no HTML.

Passo 3-Criar um ficheiro CSS e adicionar um ficheiro CSS inicial

neste passo, irá criar um ficheiroCSS. Em seguida, você vai adicionar no CSS inicial necessário para estilo do site e criar o efeito paralaxe.

Primeiro, crie uma styles.css arquivo no seu css-parallax pasta com o nano comando:

  • nano styles.css

Este é o lugar onde você vai colocar todo o CSS necessário para criar o efeito de rolagem paralaxe.

A seguir, comece com a classe .wrapper Dentro do seu ficheiro styles.css adicione o seguinte código:

css-parallax/styles.css
 .wrapper { height: 100vh; overflow-x: hidden; overflow-y: auto; perspective: 2px;}

The.wrapper class sets the perspective and scroll properties for the whole page.

a altura do Invólucro tem de ser definida para um valor fixo para o efeito funcionar. Você pode usar a unidade de visualização vh configurada para 100 para obter a altura total da área de visualização do ecrã.

Quando escalar as imagens, estas irão adicionar uma barra de posicionamento horizontal ao ecrã, para que possa desactivá-la adicionando overflow-x: hidden;. A propriedade perspective simula a distância da janela para os pseudo-elementos que você irá criar e transformar mais abaixo no CSS.

no próximo passo, você irá adicionar mais CSS para estilizar a sua página web.

Passo 4 — Adicionar estilos para o .nesta etapa, irá adicionar estilos à classe.section.

dentro do seu ficheiro styles.css adicione o seguinte código abaixo da classe wrapper:

css-parallax / styles.css
.wrapper { height: 100vh; overflow-x: hidden; perspective: 2px;}.section { position: relative; height: 100vh; display: flex; align-items: center; justify-content: center; color: white; text-shadow: 0 0 5px #000;}

o.section classe define as propriedades de tamanho, visualização e texto para as secções principais.

Definir a posição de relative para que a criança, .parallax::after pode ser posicionado de forma absoluta relativa para o elemento pai .section.

cada secção tem um view-height(vh) de100 para assumir a altura total da janela. Este valor pode ser alterado e ajustado para qualquer altura que preferir para cada secção.

finalmente ,o restante CSS propriedades são usadas para formatar e adicionar estilo ao texto dentro de cada seção. Ele posiciona o texto no centro de cada seção e adiciona uma cor de .

A seguir, irá adicionar um pseudo-elemento e estilo para criar o efeito paralaxe em duas das secções do seu HTML.

Passo 5 — Adicionar estilos para o .classe parallax

nesta etapa, irá adicionar os estilos à classe.parallax.

primeiro, irá adicionar um pseudo-elemento na classe.parallax a ser estilizado.

Nota: poderá visitar os documentos web MDN para saber mais sobre pseudo-elementos CSS.

Add the following code below the.section class:

css-parallax/styles.css
....section { position: relative; height: 100vh; display: flex; align-items: center; justify-content: center; color: white; text-shadow: 0 0 5px #000;}.parallax::after { content: " "; position: absolute; top: 0; right: 0; bottom: 0; left: 0; transform: translateZ(-1px) scale(1.5); background-size: 100%; z-index: -1;}...

The.parallax class adds an ::after pseudo-element to the background image and provides the transforms needed for the parallax effect.

O pseudo-elemento é o último filho do elemento com a classe .parallax.

A primeira metade do código mostra e posiciona o elemento psuedo. The transform property moves the pseudo-element back away from the camera on the z-index, then scales it back to fill the viewport.

Uma vez que o pseudo-elemento está mais afastado, parece mover-se mais lentamente.

no próximo passo, irá adicionar as imagens de fundo e o estilo de fundo estático.

Passo 6-adicionando as imagens e o fundo para cada secção

neste passo, irá adicionar o id finalCSS propriedades a adicionar nas imagens de fundo e cor de fundo da secção estática.

Em primeiro lugar, adicione uma cor de fundo sólida ao .static secção com o seguinte código após o .parallax::after classe:

CSS-parallax/styles.css
....parallax::after { content: " "; position: absolute; top: 0; right: 0; bottom: 0; left: 0; transform: translateZ(-1px) scale(1.5); background-size: 100%; z-index: -1;}.static { background: red;}...

The.static class adds a background to the static section that does not have an image.

As duas secções com o.parallax também têm uma classe extra que é diferente para cada uma. Use the .bg1 and .bg2 classes para adicionar as imagens de fundo do gatinho.

adicione o seguinte código ao .static classe:

css-parallax / estilos.css
....static { background: red;}.bg1::after { background-image: url('https://placekitten.com/g/900/700');}.bg2::after { background-image: url('https://placekitten.com/g/800/600');}...

The .bg1, .bg2 classes adicione as respectivas imagens de fundo para cada secção.

As imagens são do site placekitten. É um serviço para obter fotos de gatinhos para uso como espaços.

Agora que todo o código para o efeito de rolagem de paralaxe é adicionado, você pode ligar-se ao seu styles.css ficheiro no seu index.html.

Step 7 — estilos de ligação.css e índice de abertura.html no seu navegador

neste passo, irá ligar o seu ficheiro styles.css e abrir o projecto no seu navegador para ver o efeito de rolagem parallax.

em primeiro lugar, adicione o seguinte código ao ficheiro<head> tag in theindex.html:

css-parallax/index.html
 ...<head> <meta charset="UTF-8" /> <^> <link rel="stylesheet" href="styles.css" /> <^> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>CSS Parallax</title></head>...

Agora, você pode abrir o index.html arquivo no seu navegador:

Deslocamento de paralaxe, efeito gif

Com isso, você tem de configurar o funcionamento de uma página web com um efeito de deslocamento. Confira este repositório GitHub para ver o código completo.

Conclusão

neste artigo, você configurar um projeto com um index.html e styles.css arquivo e agora tem uma página web funcional. Você adicionou na estrutura de sua página web e criou estilos para as várias seções no site.

é possível colocar as imagens que você usa ou o efeito paralaxe mais longe para que se movam mais lentamente. Terá de alterar a quantidade de pixels em perspective e o transform propriedades. Se não quiser que uma imagem de fundo se desloque, use background-attachment: fixed; em vez de perspective/translate/scale.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *