< Return to Video

DMG CAP13 2025 VA03 BOUCING BALL EM CSS

  • 0:08 - 0:13
    Você já praticou aquele exercício
    clássico de animação Boucing Ball?
  • 0:13 - 0:15
    Se já, ótimo.
  • 0:15 - 0:18
    Agora nós vamos aprender
    ele em código
  • 0:18 - 0:22
    utilizando os famosos
    keyframes aqui no CSS.
  • 0:22 - 0:25
    Vamos para o VS Code
    que eu vou te mostrar.
  • 0:25 - 0:32
    Já estou com as minhas páginas
    prontas aqui com a de HTML e CSS.
  • 0:32 - 0:36
    No HTML eu intitulei
    "Boucing ball",
  • 0:36 - 0:41
    que é o nome do nosso exercício
    e linkei a nossa página style
  • 0:41 - 0:45
    que é onde a gente vai estilizar
    e criar a animação da nossa bola,
  • 0:45 - 0:50
    da nossa bola quicando,
    aqui nesta página especificamente
  • 0:50 - 0:53
    precisa estar linkado, se não,
    não reconhece.
  • 0:53 - 0:59
    E aqui dentro do corpo
    aqui da minha interface
  • 0:59 - 1:03
    eu criei uma área de trabalho
    que eu chamei de "mycanvas"
  • 1:03 - 1:07
    e dentro do "mycanvas"
    eu coloquei duas div,
  • 1:07 - 1:12
    que é uma de "container"
    onde a bola vai ficar dentro
  • 1:12 - 1:17
    e o "shadow"
    que é a sombra da minha bola
  • 1:17 - 1:20
    que vai ficar no "container'
    e dentro do container
  • 1:20 - 1:25
    temos uma div com a classe "ball"
    que é a nossa bola, ok.
  • 1:25 - 1:30
    Ficando claro, vamos para
    o mais importante que é o CSS,
  • 1:30 - 1:33
    aonde a gente vai fazer
    a coisa acontecer.
  • 1:33 - 1:34
    Mas antes disso,
  • 1:34 - 1:39
    eu vou aqui no meu corpo
    da interface do meu HTML,
  • 1:39 - 1:44
    e eu vou colocar um padding de 0.
  • 1:44 - 1:49
    E vou colocar uma margem
    de 0 também,
  • 1:49 - 1:54
    que eu quero zerar todos
    os meus parâmetros do body.
  • 1:54 - 1:59
    E aí vamos chamar a nossa classe
    "mycanvas"
  • 1:59 - 2:04
    Legal, vou abrir chaves,
  • 2:04 - 2:08
    então vou dar um background para ele
    um background-color
  • 2:08 - 2:13
    para a gente visualizar onde
    que está a nossa área de trabalho.
  • 2:13 - 2:22
    E neste background eu vou colocar
    de azul "aqua" esse, pronto.
  • 2:22 - 2:30
    Colocamos o nosso "mycanvas".
  • 2:30 - 2:32
    Deixa eu ver se está certo
    a nomenclatura,
  • 2:32 - 2:36
    "mycanvas", ok.
  • 2:36 - 2:38
    Perfeito.
  • 2:38 - 2:41
    E aí a gente vai ter que
    definir a altura para saber
  • 2:41 - 2:43
    para aparecer a altura e largura.
  • 2:43 - 2:47
    Então, vamos jogar os dois
    de 500 pixels,
  • 2:47 - 2:55
    aqui width 500px
    e vou dar um "control + S"
  • 2:55 - 3:03
    Eis aqui o meu espaço de trabalho
    que eu denominei "mycanvas"
  • 3:03 - 3:08
    e vou colocar um "position: absolute".
  • 3:08 - 3:14
    Para ele ficar absoluto
    dentro do nosso "mycanvas"
  • 3:14 - 3:20
    e um "margin: auto"
    eu quero que seja automático
  • 3:20 - 3:26
    e vou zerar alguns parâmetros,
    "left" eu zero.
  • 3:26 - 3:36
    "Right" eu zero.
    "Top" eu o zero também.
  • 3:36 - 3:44
    Opa, não foi?
    Ponto, zero.
  • 3:44 - 3:50
    E o "bottom" que é o nossa base,
    zerei.
  • 3:50 - 3:54
    Essa parte do nosso canvas,
    está legal.
  • 3:54 - 4:02
    E agora vamos estilizar a nossa bola,
    está faltando, né?
  • 4:02 - 4:06
    Já tem a classe dentro
    da div "container" como ball,
  • 4:06 - 4:10
    então,
    eu vou chamar minha classe,
  • 4:10 - 4:14
    vou abrir chaves e vou colocar,
  • 4:14 - 4:16
    deixa eu ver qual vai ser a cor,
    vamos lá.
  • 4:16 - 4:22
    "background-color",
    alguma coisa que seja bem...
  • 4:22 - 4:24
    Vou por "brown".
  • 4:24 - 4:26
    Será que vai ficar
    um contraste legal?
  • 4:26 - 4:32
    Vamos ver quando a gente colocar
    o "height" em 50 pixels,
  • 4:32 - 4:36
    vou dar um "control + S"
    ele já começa a formar.
  • 4:36 - 4:42
    Width em 50 pixels.
  • 4:42 - 4:46
    "Control + S"
    e já forma mais um pouco.
  • 4:46 - 4:47
    E para arredondar os cantos,
  • 4:47 - 4:55
    eu vou jogar
    um "border-radius" com 50%.
  • 4:55 - 4:58
    Já formou nossa bola.
  • 4:58 - 5:00
    Adoro quando forma nossa bola,
  • 5:00 - 5:03
    já que o nosso canvas
    é um "position: absolute",
  • 5:03 - 5:09
    vamos colocar aqui
    um "position: relative"
  • 5:09 - 5:15
    e "top: 100" para gente definir onde
    é o ponto de partida da nossa bola.
  • 5:15 - 5:23
    Vamos jogar "top "100px"
    em relação ao nosso canvas.
  • 5:23 - 5:25
    Então, "control + S"
  • 5:25 - 5:31
    ele já cesceu 100 pixels
    do nosso topo.
  • 5:31 - 5:41
    E "left" para jogar ele para o centro
    vamos jogar um "left: 220px
  • 5:41 - 5:44
    Jogamos para o centro.
  • 5:44 - 5:50
    E aí,
    a gente entra na nossa "animation".
  • 5:50 - 5:55
    A gente escolhe uma propriedade
    chamada de "bounce",
  • 5:55 - 5:56
    lembra do Boucing Ball?
  • 5:56 - 6:01
    É basicamente a nossa bola quicando.
  • 6:01 - 6:10
    Vamos acrescentar
    0.9 segundos de duração
  • 6:10 - 6:14
    e queremos que ela seja infinita.
  • 6:14 - 6:16
    Legal, perfeito.
  • 6:16 - 6:20
    Nada acontece porque a gente
    não criou ainda os nossos keyframes
  • 6:20 - 6:23
    e para chamar os nossos keyframes
  • 6:23 - 6:27
    nós temos que clicar
    neste "@" lindo aqui
  • 6:27 - 6:30
    e digitar "keyframes".
  • 6:30 - 6:31
    Perfeito!
  • 6:31 - 6:37
    Apontar que nossa animação
    é um bounce
  • 6:37 - 6:44
    esse mesmo nome aqui
    e vamos abrir chaves novamente.
  • 6:44 - 6:47
    E aí, aqui nós vamos colocar
    os nossos keyframes.
  • 6:47 - 6:55
    Então, em 10%.
    Abrindo chaves.
  • 6:55 - 6:56
    Eu posso aqui colocar 10%, 50%,
  • 6:57 - 7:01
    é como se fosse um keyframe 10%
  • 7:01 - 7:04
    em 10% de frames, 50
    um frame em 100%.
  • 7:05 - 7:08
    E aí eu posso variar, eu posso ficar
    1%, cinco, dez.
  • 7:08 - 7:10
    Fica ao meu critério.
  • 7:10 - 7:15
    Neste caso eu vou usar 10%
    e vou colocar Ray.
  • 7:15 - 7:20
    Então em que frame dez de 10%
    ele vai ter?
  • 7:22 - 7:28
    50 pixels de corrente e de widgets
    a mesma coisa.
  • 7:29 - 7:32
    Então vai ser uma circunferência,
    uma elipse perfeita.
  • 7:33 - 7:38
    Só que ela vai e conforme
    ela vai descendo com um impacto,
  • 7:38 - 7:40
    com aquela velocidade,
    ela vai deformando.
  • 7:40 - 7:45
    Então eu quero deformar conforme
    ela avança na minha timeline.
  • 7:46 - 7:49
    E então, quando eu chegar
    em 30% da minha timeline,
  • 7:49 - 7:52
    eu tenho um novo
    que frame que eu vou colocar?
  • 7:53 - 7:54
    Vou até copiar aqui.
  • 7:55 - 7:58
    Esse daqui como?
  • 7:59 - 8:02
    Eu vou deformar ela
  • 8:03 - 8:04
    em 40.
  • 8:04 - 8:06
    Que frames já vem?
  • 8:06 - 8:09
    Nós Já começou a deformar aqui.
  • 8:09 - 8:12
    Ela deforma para o lado e aí
    eu vou chegar
  • 8:13 - 8:16
    em 50% do meu que frame
  • 8:17 - 8:20
    da minha linha do tempo onde eu vou
    estabelecesse que frame
  • 8:21 - 8:24
    que a bolinha vai ser
    Quando chegar em 50%
  • 8:24 - 8:27
    a bolinha vai bater lá embaixo
    e vai voltar,
  • 8:27 - 8:28
    Então vamos fazer
  • 8:28 - 8:31
    ela bater lá embaixo.
    Mas nesse processo
  • 8:31 - 8:33
    a gente não pode esquecer
    que ela se deforma.
  • 8:33 - 8:35
    Então vou colocar aqui rente.
  • 8:35 - 8:39
    E eu disse
    Eu vou mudar aqui para 57.
  • 8:41 - 8:45
    E aqui eu vou colocar 30, 30%
  • 8:46 - 8:50
    quando ela bate no chão, mas
    para apontar que ela bate no chão.
  • 8:50 - 8:56
    Aí eu coloco o nosso famoso
    transform e aplico e aplico
  • 8:56 - 9:01
    perdão,
    um translate vertical, ou seja, Y
  • 9:02 - 9:06
    de 240 pixels.
  • 9:06 - 9:07
    Vamos ver, vamos lá.
  • 9:07 - 9:11
    Começou a bater e voltou,
    mas eu tenho que apontar para criar
  • 9:11 - 9:14
    fluidez,
  • 9:14 - 9:15
    apontar novos que frames?
  • 9:15 - 9:18
    E aqui eu vou em 75%
  • 9:19 - 9:23
    eu vou abrir a timeline,
    eu vou habilitar mais um que frame
  • 9:23 - 9:27
    e vou criar mais uma deformação
    para ela na volta,
  • 9:27 - 9:33
    que é de 57 pixels e quando chegar
    no fim é a volta total dela.
  • 9:33 - 9:37
    Então 100% da linha do tempo
  • 9:38 - 9:41
    para criar o Lupita.
  • 9:42 - 9:44
    Um raide Eu vou?
  • 9:44 - 9:47
    Não, eu não preciso mais o raide,
    porque aí ela volta não 100%.
  • 9:47 - 9:49
    Ela volta ao seu estado normal.
  • 9:49 - 9:52
    Então eu vou colocar um transform.
  • 9:55 - 9:58
    Transform Trans frames.
  • 9:58 - 10:01
    Cada um está aqui,
    então vou mais rápido.
  • 10:01 - 10:05
    Translate e y na vertical
  • 10:06 - 10:09
    e ela volta para o seu ponto inicial
    em zero pixels.
  • 10:10 - 10:12
    Então o que acontece
  • 10:12 - 10:17
    é mais ou menos isso o boss Symbol
    já criando o estilo ping infinito
  • 10:18 - 10:19
    infinito.
  • 10:19 - 10:21
    Aqui onde
  • 10:21 - 10:26
    de bola quicando e conforme
    ela bate e ela sobe ou ela desce,
  • 10:26 - 10:32
    ela vai se deformando para buscar
    a interpolação mais real possível.
  • 10:33 - 10:36
    Então, esse foi um exercício
    clássico de animação chamado Balfe
  • 10:36 - 10:41
    bom que a gente fez
    utilizando o CSS aqui no Visual CUT
  • 10:42 - 10:46
    e utilizando também os frames
    para apontar na nossa timeline.
  • 10:47 - 10:49
    Em que momento
    em que a gente quer deformar ou não
  • 10:49 - 10:52
    o nosso objeto visual,
    que no caso aqui é uma bolinha.
  • 10:52 - 10:56
    Então, para melhorar
    e qualificação animação em código,
  • 10:56 - 10:59
    pratique muito,
    Pegue novas animações
  • 10:59 - 11:03
    ou novos objetos para poder deformar
    para poder criar interpolação,
  • 11:03 - 11:08
    porque só praticando
    você vai evoluir a sua animação.
Title:
DMG CAP13 2025 VA03 BOUCING BALL EM CSS
Video Language:
Portuguese, Brazilian
Duration:
11:12

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions