2 votes

Comment ajouter correctement mes textes de chargement CSS dans mon animation de chargement CSS ? Je ne vois que du texte de remplacement

Je ne sais pas comment formater mon html pour qu'il affiche mes textes de chargement au lieu du substitut "..." que j'ai défini.

@keyframes loading-text {
  0% {
    content: "Pizza";
  }
  30% {
    content: "Burgers";
  }
  35% {
    content: "Chicken";
  }
  60% {
    content: "Hot Dogs";
  }
  75% {
    content: "Funnel Cakes";
  }
  90% {
    content: "Ice Cream";
  }
  95% {
    content: "Tacos";
  }
}

.loading-text {
  top: 205px;
  margin: auto;
  font-family: sans-serif;
  font-size: 1.5em;
}

.loading-text:after {
  content: "Welcome";
  font-weight: bold;
  animation-name: loading-text;
  animation-duration: 12s;
  animation-iteration-count: 1;
}

body {
  background-color: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.triangle {
  stroke-dasharray: 17;
  animation: dash 2.5s cubic-bezier(0.35, 0.04, 0.63, 0.95) infinite;
}

@keyframes dash {
  to {
    stroke-dashoffset: 136;
  }
}

.loading {
  font-family: 'Orbitron', sans-serif;
  font-size: 7px;
  animation: blink .9s ease-in-out infinite;
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<svg width="200" height="200" viewBox="0 0 40 60">
      <polygon class="triangle" fill="none" stroke="#fc0303" stroke-width="1" points="16,1 32,32 1,32" />
      <text class="loading" x="0" y="45" fill="#fff">...</text>
    </svg>
<div class="scss-loader">
</div>

JSFiddle : https://jsfiddle.net/j12eqhuy/5/

Je ne sais pas comment lier les textes css à la place de la chaîne "...", car je suis très novice en la matière.

2voto

doğukan Points 13809

El <text> n'accepte pas les pseudo-éléments. Utilisation de span cela ne peut être fait qu'avec seulement du css. Comme ceci :

@keyframes loading-text {
  0% {
    content: "Pizza";
  }
  30% {
    content: "Burgers";
  }
  35% {
    content: "Chicken";
  }
  60% {
    content: "Hot Dogs";
  }
  75% {
    content: "Funnel Cakes";
  }
  90% {
    content: "Ice Cream";
  }
  95% {
    content: "Tacos";
  }
}

.loading-container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.loading-text {
  margin-top: -50px;
  margin-right: 20px;
  font-family: sans-serif;
  font-size: 1.5em;
}

.loading-text:after {
  content: "Welcome";
  color: #fff;
  font-weight: bold;
  animation-name: loading-text;
  animation-duration: 12s;
  animation-iteration-count: 1;
}

body {
  background-color: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.triangle {
  stroke-dasharray: 17;
  animation: dash 2.5s cubic-bezier(0.35, 0.04, 0.63, 0.95) infinite;
}

@keyframes dash {
  to {
    stroke-dashoffset: 136;
  }
}

.loading {
  font-family: 'Orbitron', sans-serif;
  font-size: 7px;
  animation: blink .9s ease-in-out infinite;
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}

<div class="loading-container">
  <svg width="200" height="200" viewBox="0 0 40 60">
    <polygon class="triangle" fill="none" stroke="#fc0303" stroke-width="1" points="16,1 32,32 1,32" />
  </svg>
  <span class="loading-text"></span>
</div>
<div class="scss-loader"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

0voto

jezmck Points 132

Je ne pense pas que .loading-text dans le CSS ne correspond à rien.

content en CSS ne peuvent être utilisés que sur des pseudo-éléments, et je doute qu'ils puissent être utilisés dans un SVG.

-1voto

Sean Mooney Points 245

Avec du pur CSS, c'est impossible.

Vous devrez utiliser JavaScript pour modifier le texte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X