< 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:29
    Já estou com as minhas páginas
    prontas aqui.
  • 0:29 - 0:32
    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, senão,
    não reconhece.
  • 0:53 - 0:59
    E aqui, dentro do corpo
    da minha interface,
  • 0:59 - 1:02
    eu criei uma área de trabalho
    que eu chamei de "mycanvas"
  • 1:02 - 1:07
    e dentro do "mycanvas"
    eu coloquei duas divs,
  • 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:26
    Ficando claro,
  • 1:26 - 1:30
    vamos para o mais importante
    que é o CSS,
  • 1:30 - 1:33
    onde 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 esse azul "aqua",
  • 2:22 - 2:23
    pronto.
  • 2:23 - 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:42
    E aí a gente vai ter que definir
    a altura para ele aparecer, né?
  • 2:42 - 2:43
    A altura e a largura.
  • 2:43 - 2:47
    Então, vamos jogar os dois
    de 500 pixels,
  • 2:47 - 2:55
    "width" 500px
    e vou dar um "ctrl + 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",
    porque 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 zero também.
  • 3:36 - 3:44
    Opa, não foi?
    Top, 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, então,
  • 4:06 - 4:10
    eu vou chamar a minha classe,
  • 4:10 - 4:14
    vou abrir chaves e vou colocar,
  • 4:14 - 4:16
    deixa eu ver qual será a cor,
    vamos lá,
  • 4:16 - 4:22
    "background-color",
    alguma coisa que seja bem...
  • 4:22 - 4:24
    Vou pôr "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 "ctrl + S",
    ele já começa a formar.
  • 4:36 - 4:42
    "Width" em 50 pixels.
  • 4:42 - 4:46
    "Ctrl + 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, "ctrl + S",
  • 5:25 - 5:31
    ele já desceu 100 pixels
    do nosso topo.
  • 5:31 - 5:33
    E "left", para jogar ele para o centro.
  • 5:33 - 5:41
    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
    nesse "@" 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 - 7:00
    Eu posso aqui colocar 10%, 50%,
  • 7:00 - 7:03
    é como se fosse um keyframe 10%,
    outro keyframes 50,
  • 7:03 - 7:05
    outro keyframe em 100%.
  • 7:05 - 7:08
    E aí eu posso variar,
    eu posso optar por 1%, 5, 10.
  • 7:08 - 7:10
    Fica ao meu critério.
  • 7:10 - 7:15
    Neste caso eu vou usar 10%
    e vou colocar "height".
  • 7:15 - 7:26
    Então, no keyframe de 10%
    ele vai ter 50px de "height"
  • 7:26 - 7:29
    e de "widht" a mesma coisa.
  • 7:29 - 7:33
    Então vai ser uma circunferência,
    uma elipse perfeita.
  • 7:33 - 7:38
    Só que conforme ela vai descendo
    com um impacto,
  • 7:38 - 7:40
    com aquela velocidade,
    ela vai deformando.
  • 7:40 - 7:46
    Então, eu quero deformar conforme
    ela avança na minha timeline.
  • 7:46 - 7:49
    E então, quando chegar em 30%
    da minha timeline,
  • 7:49 - 7:53
    eu tenho um novo
    keyframe que eu vou colocar.
  • 7:53 - 7:59
    Vou até copiar aqui.
    Esse daqui.
  • 7:59 - 8:05
    Eu vou deformar ela em 40 keyframes
  • 8:05 - 8:09
    Está vendo?
    Já começou a deformar aqui,
  • 8:09 - 8:11
    ela deforma para o lado.
  • 8:11 - 8:17
    E aí, eu vou chegarem 50%
    do meu keyframe,
  • 8:17 - 8:21
    da minha linha do tempo,
    onde eu vou estabelecer esse keyframe
  • 8:21 - 8:27
    Quando chegar em 50% a bola
    vai bater lá embaixo e vai voltar,
  • 8:27 - 8:29
    Então, vamos fazer ela bater
    lá embaixo.
  • 8:29 - 8:33
    Mas nesse processo a gente não pode
    esquecer que ela se deforma.
  • 8:33 - 8:41
    Então vou colocar aqui "height"
    e width eu vou mudar aqui para 57.
  • 8:41 - 8:46
    E aqui eu vou colocar 30%.
  • 8:46 - 8:47
    Quando ela bate no chão,
  • 8:47 - 8:50
    mas para apontar
    que ela bate no chão.
  • 8:50 - 8:54
    Aí eu coloco o nosso famoso
    "transform"
  • 8:54 - 9:00
    e aplico um translate vertical,
    ou seja,
  • 9:00 - 9:06
    Y de 240 pixels.
  • 9:06 - 9:07
    Vamos ver, olha lá.
  • 9:07 - 9:09
    Começou a bater e voltou,
  • 9:09 - 9:14
    mas eu tenho que apontar
    para criar fluidez,
  • 9:14 - 9:15
    apontar novos keyframes.
  • 9:15 - 9:23
    E aqui eu vou em 75% da timeline
    eu vou habilitar mais um keyframe
  • 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 ela volta ao total dela.
  • 9:33 - 9:44
    Então 100% da linha do tempo
    para criar o loop.
  • 9:44 - 9:45
    Eu não preciso mais do height,
  • 9:45 - 9:49
    porque no 100%
    ela volta ao seu estado normal.
  • 9:49 - 9:55
    Então eu vou colocar um "transform".
  • 9:55 - 10:06
    "Transform: translateY",
    vertical
  • 10:06 - 10:09
    e ela volta para o seu ponto inicial
    em zero pixels.
  • 10:09 - 10:14
    Então o que acontece
    é mais ou menos isso,
  • 10:14 - 10:23
    o bouncing ball já criando
    este loop infinito de bola quicando
  • 10:23 - 10:26
    e conforme ela bate
    e ela sobe ou ela desce,
  • 10:26 - 10:33
    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 boucing ball
  • 10:36 - 10:42
    que a gente fez utilizando
    o CSS aqui no Visual Code
  • 10:42 - 10:46
    e utilizando também os keyframes
    para apontar na nossa timeline
  • 10:46 - 10:50
    em que momento a gente quer deformar
    ou não o nosso objeto visual,
  • 10:50 - 10:52
    que no caso aqui é uma bola.
  • 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