CSS 3 Анимация работает странно и не работает для Chrome - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь создать анимацию с CSS3-анимациями. В основном, когда я загружаю страницу, я бы хотел, чтобы h1 перемещался снизу вверх, а вступительный абзац скользил справа налево

Порядок:

1) Абзац скользил справа налево по центру страницы;

2) Затем заголовок (привет) перемещается сверху вниз.

p.intro {
  -webkit-animation: dadestra 4s;
  -moz-animation: dadestra 4s;
  -ms-animation: dadestra 4s;
  -o-animation: dadestra 4s;
  animation: dadestra 4s;
  animation-name: dadestra;
  animation-duration: 3s;
  position:relative;
  animation-delay:-1s;
}

@keyframes dadestra {
    0% { left: 100%;}
    100%{ left: 0%;}
}

@-moz-keyframes dadestra {
    0% { left: 100%;}
    100%{ left: 0%;}
}

@-webkit-keyframes dadestra {
    0% { left: 100%;}
    100%{ left: 0%;}
}

@-o-keyframes dadestra {
  0% { left: 100%;}
  100%{ left: 0%;}
}

@-ms-keyframes dadestra {
  0% { left: 100%;}
  100%{ left: 0%;}
}



/* Welcome */

h1 {
  color:#fff;
  text-align: center;
  background:#111112;
  text-shadow: 1px 1px 1px red;
  border-radius: 10px 10px 10px;
  box-shadow: 0px 1px 7px 1px red;
  position:relative;
  -webkit-animation: hello;
  animation-name: hello;
  animation-duration: 4s;
  -webkit-animation-duration: 4s;
  -moz-animation-duration: 4s;
  -ms-animation-duration: 4s;
  -o-animation-duration: 4s;
  z-index:1;
  
}

@keyframes hello {
   0%  { top:60%; left: 0%; }
  75% {top: 30%; left: 0%; }
  100% { top:0%; left: 0%; }
}

@-moz-keyframes hello {
   0%  { top:60%; left: 0%; }
  75% {top: 30%; left: 0%; }
  100% { top:0%; left: 0%; }
}

@-webkit-keyframes hello {
   0%  { top:60%; left: 0%; }
  75% {top: 30%; left: 0%; }
  100% { top:0%; left: 0%; }
}

@-ms-keyframes hello {
   0%  { top:60%; left: 0%; }
  75% {top: 30%; left: 0%; }
  100% { top:0%; left: 0%; }
}

@-o-keyframes hello {
   0%  { top:60%; left: 0%; }
  75% {top: 30%; left: 0%; }
  100% { top:0%; left: 0%; }
}
<html>
<body>
<h1>Welcome guest!</h1>
        <p class="intro">bla bla bla bla</p>
        <p class="intro">bla bla bla</p>
</body>
</html>

Я попробовал этот код, dadestra, это анимация для абзаца справа на левую центральную страницу. С абзацем все в порядке, все работает нормально.

Проблема с анимацией h1: 2 проблемы:

мигает в Firefox, выглядит очень странно;

В Chrome оно не появляется, не запускается.

Я новичок в анимации, я всегда избегаю fla sh e cc, но я должен сделать для университетского проекта, так что будьте осторожно, и если вы знаете, в чем проблема, скажите мне, спасибо заранее!

1 Ответ

1 голос
/ 09 апреля 2020

Вы должны использовать transform: translate(). Это будет работать лучше в этой ситуации

body {
  overflow: hidden;
}

h2 {
  color:#fff;
  text-align: center;
  background:#111112;
  text-shadow: 1px 1px 1px red;
  border-radius: 10px 10px 10px;
  box-shadow: 0px 1px 7px 1px red;
  position:relative;
  
  
  animation: top 1s 1s;
  animation-fill-mode: forwards;
  
  transform: translateY(-100px);
}

@keyframes top {
  0% {
    transform: translateY(-100px);
  }
  
  100% {
    transform: translateY(0px);
  }
}

p {
  animation: left 1s;
}

@keyframes left {
  0% {
    transform: translateX(100vw);
  }
  
  100% {
    transform: translateX(0vw);
  }
}
<h2>Hello</h2>

<p>Paragraph is here</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...