{}const=>[]async()letfn</>var
WebPratique

Générateur de citations aléatoires en HTML, CSS et JavaScript

Apprenez à créer un générateur de citations aléatoires avec HTML, CSS et JavaScript. Guide complet pour les débutants : création, stylisation et programmation d'une application à partir de zéro. Utilisez le code prêt à l'emploi et améliorez vos compétences en développement Web !

К

Kodik

Auteur

6 min de lecture

💡 Générateur de citations aléatoires en HTML, CSS et JavaScript

Dans cet article, nous allons voir comment créer un générateur de citations aléatoires simple en utilisant HTML, CSS et JavaScript. ✨ C'est un excellent projet pour les débutants qui souhaitent s'entraîner à utiliser les trois technologies en même temps. À la fin de l'article, vous aurez une application prête à l'emploi qui génère des citations aléatoires, vous permet de les copier, de les exprimer et de les partager sur Twitter. Commençons !

Démo du projet | 📂 Télécharger le code source sur GitHub

🤖 Dans l'application Code vous pouvez apprendre le HTML, le CSS et le JavaScript, ainsi que de nombreux autres cours pour commencer votre parcours dans le développement Web ! 🌱

🛠️ Préparation

Avant de commencer à écrire du code, assurez-vous d'avoir les éléments suivants :

  1. 🗒️ Éditeur de code: Vous pouvez utiliser n'importe quel éditeur de texte, mais je recommande Visual Studio Code, car il est pratique et possède de nombreuses extensions utiles.

  2. 🛈 Navigateur: Tout navigateur moderne, tel que Chrome ou Firefox, pour tester votre application.

  3. 📘 Connaissances de base en HTML, CSS et JavaScript: Il est souhaitable d'avoir des connaissances de base pour faciliter la compréhension du projet, mais vous pouvez également suivre cet article même sans préparation.

Maintenant que vous êtes prêt, commençons à créer notre projet à partir d'un fichier HTML vierge ! 🌱

🔥 100 000+ étudiants déjà avec nous

Marre de lire la théorie ?
Il est temps de coder !

Kodik — une appli où tu apprends à coder par la pratique. Mentor IA, leçons interactives, projets réels.

🤖 IA 24/7
🎓 Certificats
💰 Gratuit
🚀 Commencer
Ont rejoint aujourd'hui

🗃️ Étape 1 : Création du code HTML

HTML est la base de notre application. Créons un fichier index.html, dans lequel nous décrirons la structure du futur générateur de citations :

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="utf-8">
  <title>Генератор случайных цитат | Coursme</title>
  <link rel="stylesheet" href="style.css">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"/>
</head>
<body>
  <div class="wrapper">
    <header>Цитата дня</header>
    <div class="content">
      <div class="quote-area">
        <i class="fas fa-quote-left"></i>
        <p class="quote">Никогда не сдавайтесь, потому что вы никогда не знаете, может быть, следующая попытка окажется успешной.</p>
        <i class="fas fa-quote-right"></i>
      </div>
      <div class="author">
        <span>__</span>
        <span class="name">Мэри Кэй Эш</span>
      </div>
    </div>
    <div class="buttons">
      <div class="features">
        <ul>
          <li class="speech"><i class="fas fa-volume-up"></i></li>
          <li class="copy"><i class="fas fa-copy"></i></li>
          <li class="twitter"><i class="fab fa-twitter"></i></li>
        </ul>
        <button>Новая цитата</button>
      </div>
    </div>
  </div>
  <script src="script.js"></script>
</body>
</html>

Dans ce fichier, nous avons créé le cadre principal de notre application. Il contient un titre, une zone pour afficher la citation et l'auteur, ainsi que des boutons pour l'interaction.

🖼️ Étape 2 : Style avec CSS

Maintenant, nous allons rendre notre application belle ! Pour cela, nous utilisons CSS. Créons un fichier style.css et ajoutons des styles :

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Poppins', sans-serif;
}
body{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background: #5372F0;
}
.wrapper{
  width: 605px;
  background: #fff;
  border-radius: 15px;
  padding: 30px 30px 25px;
  box-shadow: 0 12px 35px rgba(0,0,0,0.1);
}
header{
  font-size: 35px;
  font-weight: 600;
  text-align: center;
}
.quote{
  font-size: 22px;
  text-align: center;
}
.author{
  font-size: 18px;
  font-style: italic;
  text-align: right;
}
button{
  border: none;
  color: #fff;
  padding: 13px 22px;
  background: #5372F0;
  border-radius: 30px;
  cursor: pointer;
}

Nous avons ajouté des styles pour une interface pratique et agréable : nous avons changé la police, défini l'arrière-plan, ajouté des styles pour les boutons et le texte.

💡 Étape 3 : Ajouter de la logique avec JavaScript

Il est maintenant temps d'ajouter des fonctionnalités à notre application à l'aide de JavaScript. Créons un fichier script.js et ajoutons le code suivant :

// Obtenir tous les éléments DOM nécessaires
const quoteText = document.querySelector(".quote"),
    quoteBtn = document.querySelector("button"),
    authorName = document.querySelector(".name"),
    speechBtn = document.querySelector(".speech"),
    copyBtn = document.querySelector(".copy"),
    twitterBtn = document.querySelector(".twitter"),
    synth = speechSynthesis;

// Fonction pour obtenir une citation aléatoire
function randomQuote() {
    quoteBtn.classList.add("loading");
    quoteBtn.innerText = "Loading Quote...";

    fetch("https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=ru")
        .then(response => response.json())
        .then(result => {
            quoteText.innerText = result.quoteText;
            authorName.innerText = result.quoteAuthor || "Unknown author";
            quoteBtn.classList.remove("loading");
            quoteBtn.innerText = "New quote";
        });
}

// Événements pour les boutons
speechBtn.addEventListener("click", () => {
    if (!quoteBtn.classList.contains("loading")) {
        let utterance = new SpeechSynthesisUtterance(`${quoteText.innerText} from ${authorName.innerText}`);
        synth.speak(utterance);
    }
});

copyBtn.addEventListener("click", () => {
    navigator.clipboard.writeText(quoteText.innerText);
});

twitterBtn.addEventListener("click", () => {
    let tweetUrl = `https://twitter.com/intent/tweet?url=${quoteText.innerText}`;
    window.open(tweetUrl, "_blank");
});

quoteBtn.addEventListener("click", randomQuote);

🧐 Explication des méthodes

  1. Obtenir tous les éléments DOM nécessaires:

    • quoteText: Lien vers l'élément où le texte de la citation sera affiché.

    • quoteBtn: Lien vers le bouton pour générer une nouvelle citation.

    • authorName: Lien vers l'élément qui affiche le nom de l'auteur de la citation.

    • speechBtn, copyBtn, twitterBtn: Liens vers les boutons pour lire la citation, la copier et la publier sur Twitter, respectivement.

    • synth: Nous utilisons l'API de synthèse vocale du navigateur pour exprimer les citations.

  2. randomQuote(): Cette fonction effectue une requête à l'API pour obtenir une citation aléatoire et l'afficher dans l'application. Pendant le chargement de la citation, le bouton devient inactif et le texte du bouton devient « Loading Quote... ».

  3. Événements pour les boutons:

    • Sonorisation de la citation (▶️) : Lorsque vous cliquez sur le bouton de sonorisation de la citation, un objet SpeechSynthesisUtterance est créé, qui sonorise la citation actuelle à l'aide de la synthèse vocale.

    • Copie de la citation (📋) : Copie le texte de la citation actuelle dans le presse-papiers de l'utilisateur à l'aide de navigator.clipboard.writeText().

    • Publication sur Twitter (🔗) : ouvre une fenêtre pour publier la citation actuelle sur Twitter, créant une URL pour un tweet avec le texte de la citation.

    • Nouvelle citation: Appuyer sur le bouton appelle la fonction randomQuote() pour charger une nouvelle citation.

💖 Résultats

Nous avons créé un générateur de citations aléatoires simple en utilisant HTML, CSS et JavaScript. ✨ Ce projet nous a aidés à combiner nos connaissances en mise en page et en programmation, ainsi qu'à travailler avec l'API. Vous pouvez maintenant l'étendre en ajoutant plus de fonctionnalités, telles que l'enregistrement de vos citations préférées ou même la création de votre propre liste de citations. Bonne chance et inspiration dans votre étude ultérieure du développement Web ! 🌱

Vous pouvez utiliser ce projet comme base pour créer des jeux plus complexes ou même étendre les fonctionnalités de ce jeu. Par exemple, ajouter un compteur de victoires, améliorer les graphismes ou rendre le jeu multijoueur. Les possibilités sont infinies, et tout dépend de ton imagination et de ta créativité !

Pour le code source complet et éventuellement des améliorations supplémentaires, consultez notre GitHub.

Si vous avez des questions, n'hésitez pas à les poser. Bonne chance dans la programmation, et que vos projets soient toujours aussi intéressants et passionnants ! 👊🌟

🎯Arrête de reporter

Tu as aimé l'article ?
Place à la pratique !

Avec Kodik, tu ne lis pas seulement — tu codes immédiatement. Théorie + pratique = vraies compétences.

Pratique instantanée
🧠L'IA explique le code
🏆Certificat

Sans inscription • Sans carte