suchen
HeimWeb-FrontendCSS-TutorialErstellen eines Generators für zufällige Zitate: Eine Schritt-für-Schritt-Anleitung mit Code

Building a Random Quotes Generator: A Step-by-Step Guide with Code

Dieses Tutorial führt Sie durch die Erstellung einer praktischen Random Quotes Generator-Anwendung, die sich perfekt zum Erlernen der Codierungsgrundlagen eignet. Wir werden jeden Schritt mit detaillierten Codebeispielen abdecken, damit Anfänger ihn leicht nachvollziehen können.


Projektübersicht

Diese App ruft zufällige Zitate von einer öffentlichen API ab, zeigt sie an und ermöglicht es Benutzern, sie zu kopieren oder zu teilen. Lassen Sie uns den Prozess aufschlüsseln und die Codelogik untersuchen.


Schritt 1: HTML-Struktur

Wir beginnen mit der Erstellung des HTML-Layouts:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Random Quotes Generator</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div id="app">
        <!-- Content will be added here -->
    </div>
    <script src="index.js"></script>
</body>
</html>

Damit wird die Grundstruktur eingerichtet, einschließlich Elementen zur Anzeige des Angebots, Schaltflächen für neue Angebote und Symbole zum Kopieren und Teilen.


Schritt 2: CORS-Verarbeitung mit einem Proxy

Um auf die externe API zuzugreifen, benötigen wir eine CORS-Lösung (Cross-Origin Resource Sharing). Ein einfacher Express.js-Proxyserver erledigt dies:

// proxy.js
const express = require("express");
const fetch = require("node-fetch");
const cors = require("cors");
const app = express();

app.use(cors());

app.get("/api/quote", async (req, res) => {
    try {
        const response = await fetch("https://qapi.vercel.app/api/random");
        const data = await response.json();
        res.json(data);
    } catch (error) {
        res.status(500).json({ error: "API fetch failed" });
    }
});

const PORT = 4000;
app.listen(PORT, () => console.log(`Proxy running on http://localhost:${PORT}`));

Dieser lokale Proxy ruft Anführungszeichen ab und vermeidet CORS-Probleme.


Schritt 3: Angebote mit JavaScript abrufen

Die Schaltfläche „Neues Angebot“ löst einen Angebotsabruf aus:

// index.js
const quoteDisplay = document.getElementById("quote");
const authorDisplay = document.getElementById("author");

async function getQuote() {
    try {
        const response = await fetch('http://localhost:4000/api/quote');
        const data = await response.json();
        quoteDisplay.textContent = data.quote || "No quote found.";
        authorDisplay.textContent = data.author || "Unknown";
    } catch (error) {
        console.error("Quote fetch error:", error);
        quoteDisplay.textContent = "Error fetching quote.";
    }
}

Dieses Skript ruft Daten ab und aktualisiert das Zitat und den Autor in der Benutzeroberfläche.


Schritt 4: Kopierfunktion

Die Clipboard-API ermöglicht das Kopieren von Angeboten:

// copyQuote.js
async function copyQuote() {
    try {
        const quoteText = `${quoteDisplay.textContent} - ${authorDisplay.textContent}`;
        await navigator.clipboard.writeText(quoteText);
        alert("Copied to clipboard!");
    } catch (error) {
        console.error("Copy failed:", error);
    }
}

Durch Klicken auf das Kopiersymbol werden das Zitat und der Autor kopiert.


Schritt 5: Funktionalität teilen

Die Navigator-API erleichtert das Teilen:

// shareQuote.js
async function shareQuote() {
    const quoteText = `${quoteDisplay.textContent} - ${authorDisplay.textContent}`;
    try {
        await navigator.share({ text: quoteText });
    } catch (error) {
        console.error("Share failed:", error);
        // Fallback for unsupported browsers
        alert(`Share this quote: ${quoteText}`);
    }
}

Dies übernimmt die Freigabe und bietet einen Ersatz für Browser, denen navigator.share fehlt.


Schritt 6: Styling mit CSS

CSS formatiert die App für visuelle Attraktivität und Reaktionsfähigkeit (Beispielstile wurden der Kürze halber weggelassen).


Schritt 7: Starten der App

  1. Klonen Sie das Repository: (ersetzen Sie es durch Ihre tatsächliche Repository-URL)
  2. Abhängigkeiten installieren: npm install
  3. Proxyserver starten: node proxy.js
  4. Öffnen Sie index.html in Ihrem Browser.

Projektstruktur

  • index.html: Hauptbenutzeroberfläche
  • proxy.js: CORS-Proxyserver
  • index.js: Angebotsabruf und -anzeige
  • copyQuote.js: Kopierfunktion
  • shareQuote.js: Freigabefunktion
  • styles.css: Styling

API-Guthaben

Von der Quotes API bereitgestellte Angebote.


Fazit

In diesem Tutorial ging es um den Aufbau eines Generators für zufällige Anführungszeichen, die Demonstration der API-Integration, der CORS-Verarbeitung und der Browser-APIs. Es ist eine großartige Übung zum Erlernen der API-Interaktion, der JavaScript-Grundlagen und der Browser-APIs. Feedback ist willkommen!

GitHub | LinkedIn | X

Das obige ist der detaillierte Inhalt vonErstellen eines Generators für zufällige Zitate: Eine Schritt-für-Schritt-Anleitung mit Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Was ist CSS Grid?Was ist CSS Grid?Apr 30, 2025 pm 03:21 PM

CSS Grid ist ein leistungsstarkes Tool zum Erstellen komplexer, reaktionsschneller Weblayouts. Es vereinfacht das Design, verbessert die Zugänglichkeit und bietet mehr Kontrolle als ältere Methoden.

Was ist CSS Flexbox?Was ist CSS Flexbox?Apr 30, 2025 pm 03:20 PM

In Artikel wird CSS Flexbox erörtert, eine Layoutmethode zur effizienten Ausrichtung und Verteilung des Raums in reaktionsschnellen Designs. Es erklärt die Verwendung von Flexbox, vergleicht es mit CSS -Gitter und Details Browser -Unterstützung.

Wie können wir unsere Website mit CSS reagieren?Wie können wir unsere Website mit CSS reagieren?Apr 30, 2025 pm 03:19 PM

In dem Artikel werden Techniken zum Erstellen von reaktionsschnellen Websites mithilfe von CSS erörtert, einschließlich Ansichtsfenster -Meta -Tags, flexiblen Gitter, Flüssigkeitsmedien, Medienabfragen und relativen Einheiten. Es deckt auch mit CSS -Raster und Flexbox zusammen und empfiehlt CSS -Framework

Was macht die CSS-Box-Größeneigenschaft?Was macht die CSS-Box-Größeneigenschaft?Apr 30, 2025 pm 03:18 PM

In dem Artikel wird die CSS-Box-Größeneigenschaft erörtert, in der die Berechnung der Elementabmessungen steuert. Es erklärt Werte wie Inhaltsbox, Border-Box und Padding-Box sowie deren Auswirkungen auf das Layout-Design und die Form von Formularausrichtung.

Wie können wir mit CSS animieren?Wie können wir mit CSS animieren?Apr 30, 2025 pm 03:17 PM

In Artikel wird das Erstellen von Animationen mithilfe von CSS, Schlüsseleigenschaften und Kombination mit JavaScript erläutert. Hauptproblem ist die Browserkompatibilität.

Können wir mit CSS 3D -Transformationen zu unserem Projekt hinzufügen?Können wir mit CSS 3D -Transformationen zu unserem Projekt hinzufügen?Apr 30, 2025 pm 03:16 PM

In Artikel werden CSS für 3D -Transformationen, wichtige Eigenschaften, Browserkompatibilität und Leistungsüberlegungen für Webprojekte erläutert. (Charakterzahl: 159)

Wie können wir Gradienten in CSS hinzufügen?Wie können wir Gradienten in CSS hinzufügen?Apr 30, 2025 pm 03:15 PM

In dem Artikel werden CSS -Gradienten (linear, radial, wiederholt) beschrieben, um die Website -Visuals, das Hinzufügen von Tiefe, Fokus und moderne Ästhetik zu verbessern.

Was sind Pseudoelemente in CSS?Was sind Pseudoelemente in CSS?Apr 30, 2025 pm 03:14 PM

In Artikel werden Pseudoelemente in CSS, deren Verwendung bei der Verbesserung des HTML-Stylings und der Unterschiede zu Pseudoklassen erläutert. Bietet praktische Beispiele.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung