Сделайте CSS фоновый аниматон не блеклым, а между цветами - PullRequest
2 голосов
/ 27 февраля 2020

Я сейчас играю / изучаю CSS анимации и переходы, и я хочу сделать простую анимацию, где цвет фона и текст DIV чередуются между двумя цветами. Это довольно просто, но мои цвета блекнут или смешиваются от одного к другому, и я бы предпочел, чтобы они щелкали, или прыгали, или переключались с одного на другой, чтобы влияние изменений было сильнее. Вот мой простой код

<div class="boss">
    I am some text
</div>

Вот мой CSS

.boss {
        font-family: Helvetica, sans-serif;
        position: absolute;
        width: 100vw;
        height: 100vh;
        top: 0px;
        left: 0;
        background-color: #e91e63;
        display: flex;
        justify-content: center;
        align-items: center;
        color: white;
        font-size: 2em;
        text-transform: uppercase;
        animation: bg 1s linear infinite;
    }

@keyframes bg {
    0%  {
        background-color: #e91e63;
        color: white;
    }

    100%  {
        background-color: white;
        color: #e91e63;
    }
}

Здесь находится jsbin кода: https://jsbin.com/macimep/edit?html, css, вывод

Может кто-нибудь сказать мне, как я могу изменить цвет, чтобы он переключался, а не исчезал. Я уверен, что это не сложный вопрос, но все, что я пробовал до сих пор, не сработало. Также я хочу сделать это с CSS, переключиться с JavaScript просто, но я пытаюсь справиться с CSS. Большое спасибо заранее

Ответы [ 2 ]

2 голосов
/ 27 февраля 2020

Если вам не нужен производственный готовый код и вы просто играете с существующими решениями, вы можете использовать animation-timing-function: steps(2, end); (см. https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function#Step_examples).

Вы также можете сделать:

@keyframes bg {
    0%,49%  {
        background-color: #e91e63;
        color: white;
    }

    50%,100%  {
        background-color: white;
        color: #e91e63;
    }
}
1 голос
/ 27 февраля 2020

Попробуйте это:

.boss {
  font-family: Helvetica, sans-serif;
  position: absolute;
  width: 100vw;
  height: 100vh;
  top: 0px;
  left: 0;
  background-color: #e91e63;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 2em;
  text-transform: uppercase;
  animation: bg 1s linear infinite;
}

@keyframes bg {
  0%,
  49.99% {
    background-color: #e91e63;
    color: white;
  }
  50%,
  100% {
    background-color: white;
    color: #e91e63;
  }
}
<div class="boss">
  I am some text
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...