In dieser Anleitung erfahren Sie, wie Sie PhotoSwipe in einer Astro-Anwendung verwenden. Sie durchlaufen den Prozess der Einrichtung eines neuen Astro-Projekts, der Installation des PhotoSwipe-Moduls und der Umwandlung Ihrer Bildersammlung in eine Bildergalerie
Hochwertige Starter-Kits mit integriertem Authentifizierungsfluss (Auth.js), Objekt-Uploads (AWS, Clouflare R2, Firebase Storage, Supabase Storage), integrierten Zahlungen (Stripe, LemonSqueezy), E-Mail-Verifizierungsablauf (Resend, Postmark, Sendgrid) und viel mehr . Kompatibel mit jeder Datenbank (Redis, Postgres, MongoDB, SQLite, Firestore).
Get all 3 kits$147$99- Next.js Starter Kit
- SvelteKit Starter Kit
- Astro Starter Kit
One-time license · Lifetime updates
Voraussetzungen
Sie benötigen Folgendes:
- Nodejs 18 oder höher
Inhaltsverzeichnis
- Eine neue Astro-Anwendung erstellen
- Integrieren Sie PhotoSwipe in Ihr Astro-Projekt
- Erstellen und testen Sie Ihre Astro-Anwendung lokal
- Quellcode
- Schlussfolgerung
Erstellen Sie eine neue Astro-Anwendung
Beginnen wir mit der Erstellung eines neuen Astro-Projekts. Führen Sie den folgenden Befehl aus:
npm create astro@latest my-app„npm create astro“ ist die empfohlene Methode, um ein Astro-Projekt schnell zu erstellen
Wenn Sie dazu aufgefordert werden, wählen Sie:
- „Leer“, wenn Sie gefragt werden, wie das neue Projekt gestartet werden soll
- „Ja“, wenn Sie gefragt werden, ob Sie Typescript schreiben möchten
- „Streng“, wenn Sie gefragt werden, wie streng Typescript sein soll
- „Ja“, wenn Sie aufgefordert werden, Abhängigkeiten zu installieren – „Ja“, wenn Sie aufgefordert werden, ein Git-Repository zu initialisieren
Sobald das erledigt ist, können Sie in das Projektverzeichnis wechseln und die App starten:
cd my-appnpm run devDie App sollte auf localhost:4321 ausgeführt werden.
Kommen wir nun zur Integration von PhotoSwipe in Ihre Astro-Anwendung
Integrieren Sie PhotoSwipe in Ihr Astro-Projekt
Installieren Sie das PhotoSwipe SDK
Führen Sie den folgenden Befehl aus, um das erforderliche Paket für die Verwendung von PhotoSwipe zu installieren:
npm install photoswipenpm install -D @types/photoswipeDer Befehl installiert die folgende Bibliothek:
- „photoswipe“: Eine Framework-unabhängige JavaScript-Bildergalerie-Bibliothek
- „@types/photoswipe“: Typdefinitionen für die „photoswipe“-Bibliothek
Erstellen Sie eine Bildersammlung
Für die Verwendung von PhotoSwipe (mit der Standardkonfiguration) sind zwei Dinge erforderlich:
- Ein übergeordnetes HTML-Element (am häufigsten ein „“), das alle Bilder enthält
- Jedes Bild muss in ein „“-Tag eingeschlossen werden, das die Attribut „Höhe“ und „Breite“ des Bildes enthält
“-Element nicht den Stil Ihrer „“-Elemente übernimmt, können Sie das folgende CSS verwenden, um nur seine untergeordneten Elemente darzustellen: „display: content;“ In Im folgenden Beispiel verwenden Sie die Klasse „contents“ von Tailwind CSS---// File: src/pages/index.astro // [!code focus]import { ViewTransitions } from "astro:transitions";---// [!code focus]<html lang="en"><head><meta charset="utf-8" /><link rel="icon" type="image/svg+xml" href="/favicon.svg" /><meta name="viewport" content="width=device-width" /><meta name="generator" content={Astro.generator} /><title>Astro</title><ViewTransitions /></head><body><div id="my-gallery" class="grid grid-cols-1 py-10 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4"><a href="https://picsum.photos/900/1600" data-pswp-width="900" data-pswp-height="1600" class="contents"><imgwidth="900"height="1600"loading="lazy"decoding="async"src="https://picsum.photos/900/1600"class="absolute h-[250px] w-[300px] object-cover shadow-sm"/></a><a href="https://picsum.photos/900/1600" data-pswp-width="900" data-pswp-height="1600" class="contents"><imgwidth="900"height="1600"loading="lazy"decoding="async"src="https://picsum.photos/900/1600"class="absolute h-[250px] w-[300px] object-cover shadow-sm"/></a></div></body></html>Verwandeln Sie Ihre Bildersammlung in eine Bildergalerie
Mit PhotoSwipe können Sie Ihre Bildersammlung in minimalen Codezeilen in eine interaktive Bildergalerie umwandeln. Dies geht ganz einfach in drei Schritten:
- Importieren Sie das „PhotoSwipe“-CSS
- Importieren Sie das Modul „PhotoSwipe“.
- Erstellen Sie einen Leuchtkasten mit „PhotoSwipe“.
Sehen Sie sich das folgende Skript an, um die oben genannten Schritte in diesem Beispiel auszuführen:
---// File: src/pages/index.astro // [!code focus]import { ViewTransitions } from "astro:transitions";---// [!code focus]<html lang="en"><head><meta charset="utf-8" /><link rel="icon" type="image/svg+xml" href="/favicon.svg" /><meta name="viewport" content="width=device-width" /><meta name="generator" content={Astro.generator} /><title>Astro</title><ViewTransitions /></head><body><div id="my-gallery" class="grid grid-cols-1 py-10 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4"><a href="https://picsum.photos/900/1600" data-pswp-width="900" data-pswp-height="1600" class="contents"><imgwidth="900"height="1600"loading="lazy"decoding="async"src="https://picsum.photos/900/1600"class="absolute h-[250px] w-[300px] object-cover shadow-sm"/></a><a href="https://picsum.photos/900/1600" data-pswp-width="900" data-pswp-height="1600" class="contents"><imgwidth="900"height="1600"loading="lazy"decoding="async"src="https://picsum.photos/900/1600"class="absolute h-[250px] w-[300px] object-cover shadow-sm"/></a></div><script>import 'photoswipe/style.css'import pswpModule from 'photoswipe'import PhotoSwipeLightbox from 'photoswipe/lightbox'const lightbox = new PhotoSwipeLightbox({pswpModule,children: 'a',gallery: '#my-gallery',})document.addEventListener('astro:page-load',() => { if (lightbox) lightbox.init() },{ once: false },)</script></body></html>Im obigen Code haben Sie Folgendes getan:
- Das „PhotoSwipe“-CSS wurde importiert
- Es wurde eine Lightbox erstellt, die auf Klicks auf alle „
“-Elemente lauscht, die hirrachly im HTML-Element vorhanden sind, das „my-gallery“ als ID-Attribut hat
- Fügt einen Astro-Seitenlade-Listener hinzu und aktiviert die Lightbox. Diese Art der Instanziierung der Lightbox ist hilfreich, da dieses Skript auch mit aktivierten Ansichtsübergängen in Ihrer Astro-Anwendung verwendet werden kann
Erstellen und testen Sie Ihre Astro-Anwendung lokal
Um die Anwendung zu testen, bereiten Sie einen Build vor und führen Sie den Vorschauserver mit dem folgenden Befehl aus:
Terminal window npm run build && npm run previewQuellcode
Um alles wie in dieser Anleitung vorgefertigt zu bekommen, besuchen Sie bitte https://github.com/rishi-raj-jain/astro-photoswipe-starter
Abschluss
In dieser Anleitung haben Sie erfahren, wie Sie PhotoSwipe in einer Astro-Anwendung verwenden, um eine Bildergalerie zu erstellen
Wenn Sie Fragen oder Kommentare haben, können Sie mich gerne auf Twitter.
Weiterlesen- 03JUL
Eine serverseitig gerenderte Angular-20+-Anwendung auf Cloudflare Workers bereitstellen
Erfahren Sie, wie Sie eine serverseitig gerenderte Angular-20+-Anwendung auf Cloudflare Workers bereitstellen, statische Assets vom Edge ausliefern und SSR ausführen.
- 22JUN
Backblaze B2 Storage-Unterstützung jetzt in LaunchFast Starter Kits verfügbar
LaunchFast funktioniert out of the box mit Backblaze B2. Gleiches STORAGE_PROVIDER=s3, gleicher vorsignierter Upload-Flow. Verweisen Sie AWS_ENDPOINT_URL_S3 auf Ihren regionalen B2-S3-Endpunkt und fügen Sie Ihren Application Key hinzu.
- 19JUN
Tigris Storage-Unterstützung jetzt in LaunchFast Starter Kits verfügbar
LaunchFast funktioniert out of the box mit Tigris. Gleiches STORAGE_PROVIDER=s3, gleicher vorsignierter Upload-Flow. Verweisen Sie AWS_ENDPOINT_URL_S3 auf https://fly.storage.tigris.dev und fügen Sie Ihre Zugangsdaten hinzu.