freeCodeCamp/curriculum/challenges/portuguese/01-responsive-web-design/applied-visual-design/create-movement-using-css-a...

3.4 KiB

id title challengeType videoUrl localeTitle
587d78a7367417b2b2512ae1 Create Movement Using CSS Animation 0 Criar movimento usando animação CSS

Description

Quando os elementos têm uma position especificada, como fixed ou relative , as propriedades de deslocamento de CSS right , left , top e bottom podem ser usadas em regras de animação para criar movimento. Conforme mostrado no exemplo abaixo, você pode empurrar o item para baixo e depois para cima definindo a propriedade top do quadro-chave de 50% para 50px, mas definindo-o como 0px para o primeiro ( 0% ) e o último ( 100% ) quadro-chave.
@keyframes rainbow {
  0% {
    background-color: blue;
    top: 0px;
  }
  50% {
    background-color: green;
    top: 50px;
  }
  100% {
    background-color: yellow;
    top: 0px;
  }
}

Instructions

Adicione um movimento horizontal à animação div . Usando a propriedade offset left , adicione à regra @keyframes para que o arco-íris comece em 0 pixels a 0% , @keyframes para 25 pixels em 50% e termine em -25 pixels em 100% . Não substitua a propriedade top no editor - a animação deve ter movimento vertical e horizontal.

Tests

tests:
  - text: A regra <code>@keyframes</code> para <code>0%</code> deve usar o deslocamento <code>left</code> de 0px.
    testString: 'assert(code.match(/0%\s*?{\s*?background-color:\s*?blue;\s*?top:\s*?0(px)?;\s*?left:\s*?0(px)?;\s*?}/gi), "The <code>@keyframes</code> rule for <code>0%</code> should use the <code>left</code> offset of 0px.");'
  - text: A regra <code>@keyframes</code> para <code>50%</code> deve usar o deslocamento <code>left</code> de 25px.
    testString: 'assert(code.match(/50%\s*?{\s*?background-color:\s*?green;\s*?top:\s*?50px;\s*?left:\s*?25px;\s*?}/gi), "The <code>@keyframes</code> rule for <code>50%</code> should use the <code>left</code> offset of 25px.");'
  - text: A regra <code>@keyframes</code> para <code>100%</code> deve usar o deslocamento <code>left</code> de -25px.
    testString: 'assert(code.match(/100%\s*?{\s*?background-color:\s*?yellow;\s*?top:\s*?0(px)?;\s*?left:\s*?-25px;\s*?}/gi), "The <code>@keyframes</code> rule for <code>100%</code> should use the <code>left</code> offset of -25px.");'

Challenge Seed

<style>
  div {
    height: 40px;
    width: 70%;
    background: black;
    margin: 50px auto;
    border-radius: 5px;
    position: relative;
  }

#rect {
  animation-name: rainbow;
  animation-duration: 4s;
}

@keyframes rainbow {
  0% {
    background-color: blue;
    top: 0px;

  }
  50% {
    background-color: green;
    top: 50px;

  }
  100% {
    background-color: yellow;
    top: 0px;

  }
}
</style>

<div id="rect"></div>

Solution

// solution required