Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

247
Visualizações
Iniciar una animación CSS desde una posición diferente

Estoy construyendo un modelo del sistema solar y estoy usando animaciones CSS para animar los planetas que se mueven alrededor del sol así:

 .earthMini { border-radius: 50%; position: absolute; --radius: 1rem; top: calc(50% - var(--radius)); left: calc(50% - var(--radius)); width: calc(2 * var(--radius)); height: calc(2 * var(--radius)); background: url("../../planetTextures/earth.jpg") repeat-x; background-size: 100% 100%; animation: earthOrbit 45s linear infinite, translateBackground 50s infinite linear; } @keyframes earthOrbit { from { transform: rotate(0deg) translateX(13rem) rotate(0deg); } to { transform: rotate(360deg) translateX(13rem) rotate(-360deg); } }

Esto funciona muy bien, sin embargo, cuando la página se carga por primera vez, todos los planetas se animan desde la misma posición de inicio:

ejemplo

Estoy buscando una manera de que cada planeta tenga una posición de inicio diferente en su órbita.

Tengo un codesandbox aquí con mi código completo.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar una regla animation-delay negativa para que la animación comience más adelante en su animación inicial.

puede configurar esto a través de algunos valores arbitrarios en su css, o aplicar un aleatorio real usando javascript.

 .earthMini { border-radius: 50%; position: absolute; --radius: 1rem; top: calc(50% - var(--radius)); left: calc(50% - var(--radius)); width: calc(2 * var(--radius)); height: calc(2 * var(--radius)); background: url("../../planetTextures/earth.jpg") repeat-x; background-size: 100% 100%; animation: earthOrbit 45s linear infinite, translateBackground 50s infinite linear; animation-delay: -45s; // <- this will place earth at the point of animation for 45s, } @keyframes earthOrbit { from { transform: rotate(0deg) translateX(13rem) rotate(0deg); } to { transform: rotate(360deg) translateX(13rem) rotate(-360deg); } }

tu codepen con algunas modificaciones

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda