Pagina inicial » Codificação » Como criar animações 3D Flip Button Com CSS

    Como criar animações 3D Flip Button Com CSS

    Animações Flip são efeitos CSS populares que mostram tanto a frente quanto a parte de trás de um elemento HTML, transformando-os de cima para baixo, ou da esquerda para a direita (e vice-versa). Eles são rad em 2 dimensões, mas eles são ainda mais frios quando executados em 3D.

    Neste post, vou mostrar como criar botões 3D simples, e adicione animações flip para eles.

    Você pode ver o resultado na demonstração abaixo, se você clicar nos botões, eles executarão a animação de flip rotulada.

    1. Criando o HTML para o botão 3D

    Para criar um botão 3D (com Top → Bottom flip), primeiro empilharemos três

    s um sobre o outro, dois para as faces frontal e traseira do botão e um terceiro para preencher a profundidade no meio. Colocamos as três faces do botão no .flipbtn recipiente que funcionará como o botão 3D, e colocamos o botão 3D no .flipBtnWrapper embrulho.

     
    2. Adicionando estilos básicos com CSS

    Nós definimos o largura e altura propriedades do wrapper, do botão e do botão, e posicioná-los usando a técnica de posicionamento relativo / absoluto.

     .flipBtnWrapper largura: 200px; altura: 200 px; posição: relativa;  .flipBtn, .flipBtn_face width: 100%; altura: 100%; posição: absoluta;  
    3. Estilize as 3 faces dos botões

    Adicionamos imagens de fundo às faces frontal e traseira do botão e definimos um gradiente linear legal por trás das imagens para ambos. O truque aqui é que no CSS, você pode definir várias imagens como imagem de fundo para o mesmo elemento, e você também pode declarar gradientes como imagens de fundo.

    A face do meio, .flipBtn_mid, é dado um altura de 20px, e um mesmo espaço de 20px é criado entre as faces frontal e traseira. Nós alcançamos o último usando o translateZ () Função CSS que move um elemento ao longo do eixo z. Nós empurramos a face traseira para trás em 10px e levamos a face frontal para frente em 10px.

     .flipBtn_front background-image: url ("imagem / css-3d-flip-botão-animação-play.png"), gradiente linear (# FF6366 50%, # FEA56E); backface-visibility: oculto; transform: translateZ (10px);  .flipBtn_back background-image: url ("imagem / css-3d-flip-botão-animação-pause.png"), gradiente linear (# FF6366 50%, # FEA56E); cor de fundo: azul; transformar: translateZ (-10px);  .flipBtn_mid height: 20px; cor de fundo: # d5485a; transform: rotateX (90deg); topo: -10px; 

    Para cobrir o espaço entre as faces frontal e traseira com a do meio, nós Deite a face do meio plana através do plano x do espaço 3D usando o transform: rotateX (90deg); regra que torna perpendicular para ambos os lados do botão dianteiro e traseiro no plano y.

    Como a face do meio foi colocada no plano x, seu ponto superior no eixo y vai 10px (metade de sua altura) abaixo do original. Então, para puxar de volta e alinhar a parte superior com as outras duas faces do botão, eu adicionei o topo: -10px governar bem.

    Eu usei o backface-visibility Propriedade CSS para o rosto da frente, então quando virarmos o botão, a parte de trás da face frontal não será visível.

    Até agora, você só verá a face frontal na tela, como o plano x está escondido da vista, e no plano y (tela) a última face colocada foi a frente. Rodando o botão você será capaz de ver os outros rostos também.

    O botão
    4. Rodando o botão

    A propriedade CSS de estilo de transformação determina se os elementos filhos de um elemento HTML são exibidos planos ou posicionados no espaço 3D. No trecho de código abaixo, o transform-style: preserve-3d; regra dá volume 3D ao nosso botão, enquanto o transformar: rotatexX () propriedade gira em torno do eixo x.

     .flipBtn transform-style: preserve-3d; transform: rotateX (-120deg);  

    Note que eu usei -120deg unicamente para fins de demonstração, por isso é mais fácil ilustrar como funciona a rotação de botões.

    Botão girado em -120 °

    No entanto, no próximo passo, vamos mudá-lo para -180 graus para fazer o botão virar completamente.

    5. Animando o botão

    Neste ponto, o nosso botão 3D ainda não está animado. Podemos fazer isso usando o transição propriedade. Nós usamos o transformar propriedade para o primeiro valor, pois esta é a propriedade para a qual queremos aplicar o efeito de transição. O segundo valor, é a duração, 2s.

    Vamos fazer o botão girar apenas ao passar o mouse, então ao invés do .flipbtn seletor, vamos usar .flipBtnWrapper: hover .flipBtn. Como mencionado anteriormente, também altere o valor de rotateX () para -180 graus para fazer o botão virar.

     .flipBtn transição: transformar 2s; transform-style: preserve-3d;  .flipBtnWrapper: hover .flipBtn transform: rotateX (-180deg); 

    Note que no repositório do Github, eu adicionou uma caixa de seleção para cada botão a fim de disparar a animação em :verificado em vez de :flutuar, Desta forma, se comporta mais como um botão real. Eu também incluí quatro botões diferentes com quatro direções de flip (superior → inferior, inferior → superior, direita → esquerda e esquerda → direita), para que você possa usar facilmente o que você.

    • Ver demonstração
    • Fonte de download