Надеюсь, ты сможешь помочь. Мне интересно, можно ли сделать в цикле следующий тип:

Вы знаете, возможно ли это?

body {
  background: #000;
}

/* DEMO-SPECIFIC STYLES */
.typewriter h1 {
  color: #fff;
  font-family: Bebas Neue;
  overflow: hidden; /* Ensures the content is not revealed until the animation */
  border-right: .15em solid orange; /* The typwriter cursor */
  white-space: nowrap; /* Keeps the content on a single line */
  margin: 0 auto; /* Gives that scrolling effect as the typing happens */
  letter-spacing: .15em; /* Adjust as needed */
  animation: 
    typing 3.5s steps(30, end),
    blink-caret .5s step-end infinite;
}

/* The typing effect */
@keyframes typing {
  from { width: 0 }
  to { width: 100% }
}

/* The typewriter cursor effect */
@keyframes blink-caret {
  from, to { border-color: transparent }
  50% { border-color: orange }
}
<div class="typewriter">
  <h1><h1 class="m-size-54 text-align-left size-80">
  <span class="m-font-size-54 font-size-80" m-font-size-set="true" style="font-style: italic; font-family: 'Bebas Neue'; color: rgb(255, 255, 255); display: initial;" no_space_b="true" no_space_e="true">
      Hello World!</h1>
</div>
0
Jimmy Johnson 19 Май 2021 в 00:45

2 ответа

Лучший ответ

Мне интересно, можете ли вы сделать следующий тип в цикле

Да, вы можете просто добавить свойство infinite к сокращению animation, как вы это делали с анимацией blink-caret.

body {
  background: #000;
}

/* DEMO-SPECIFIC STYLES */
.typewriter h1 {
  color: #fff;
  font-family: Bebas Neue;
  overflow: hidden; /* Ensures the content is not revealed until the animation */
  border-right: .15em solid orange; /* The typwriter cursor */
  white-space: nowrap; /* Keeps the content on a single line */
  margin: 0 auto; /* Gives that scrolling effect as the typing happens */
  letter-spacing: .15em; /* Adjust as needed */
  animation: 
    typing 3.5s steps(30, end) infinite,
    /*                           ^--- ADDED THIS */
    blink-caret .5s step-end infinite;
}

/* The typing effect */
@keyframes typing {
  from { width: 0 }
  to { width: 100% }
}

/* The typewriter cursor effect */
@keyframes blink-caret {
  from, to { border-color: transparent }
  50% { border-color: orange }
}
<div class="typewriter">
  <h1><h1 class="m-size-54 text-align-left size-80">
  <span class="m-font-size-54 font-size-80" m-font-size-set="true" style="font-style: italic; font-family: 'Bebas Neue'; color: rgb(255, 255, 255); display: initial;" no_space_b="true" no_space_e="true">
      Hello World!</h1>
</div>
0
Dominik 18 Май 2021 в 21:59

Вы можете попробовать, как показано ниже. Отрегулируйте ширину, чтобы она соответствовала содержимому, и вместо этого примените анимацию к максимальной ширине. Чтобы добавить некоторую задержку, сделайте последнее состояние ключевого кадра концом раньше.

body {
  background: #000;
}

/* DEMO-SPECIFIC STYLES */
.typewriter h1 {
  color: #fff;
  font-family: Bebas Neue;
  width:fit-content;
  overflow: hidden; /* Ensures the content is not revealed until the animation */
  border-right: .15em solid orange; /* The typwriter cursor */
  white-space: nowrap; /* Keeps the content on a single line */
  margin: 0 auto; /* Gives that scrolling effect as the typing happens */
  letter-spacing: .15em; /* Adjust as needed */
  animation: 
    typing 3.5s steps(30, end) infinite,
    blink-caret .5s step-end infinite;
}

/* The typing effect */
@keyframes typing {
  0% { max-width: 0 }
  70%,100% { max-width: 100% }
}

/* The typewriter cursor effect */
@keyframes blink-caret {
  from, to { border-color: transparent }
  50% { border-color: orange }
}
<div class="typewriter">
  <h1 class="m-size-54 text-align-left size-80">
  <span class="m-font-size-54 font-size-80" m-font-size-set="true" style="font-style: italic; font-family: 'Bebas Neue'; color: rgb(255, 255, 255); display: initial;" no_space_b="true" no_space_e="true">
      Hello World!</span></h1>
</div>
0
Temani Afif 18 Май 2021 в 22:51