Das ist ein kleiner Ausschnitt, den ich schon seit Längerem ausprobieren wollte. Endlich bin ich dazu gekommen, dieses ikonische Feature von Google Maps nachzubilden: die Möglichkeit, diesen kleinen Kerl, bekannt als Pegman, per Drag-and-Drop zu Street View zu wechseln.
TL;DR
Klicken Sie auf das kleine Symbol in der unteren rechten Ecke und ziehen Sie es über die Karte:
HTML
Die Struktur ist unkompliziert. Ich habe:
- Eine #Karte, die als Container dient (mit einem angewendeten Hintergrundbild).
- Ein #Pegman-Container in der unteren rechten Ecke.
- Das #pegman-Element selbst für den ziehbaren Charakter.
<div> <h2> CSS </h2> <p>Positioning everything is simple, as you can see in the source code above, but the most important part is the rotate property. This is dynamically updated using JavaScript:<br> </p> <pre class="brush:php;toolbar:false">#pegman { /* other styles */ rotate: var(--r); }
Der Rotationswert ändert sich basierend auf der Benutzerinteraktion, auf die wir als Nächstes näher eingehen werden.
Javascript
Hier dreht sich alles um die Benutzerinteraktion. JavaScript-Handles:
- Auf Mausereignisse achten.
- Pegmans Position und Drehung werden dynamisch aktualisiert.
- Hinzufügen flüssiger Animationen für eine bessere UX.
const pegman = document.querySelector('#pegman'); let isDragging = false; let initialX = 0; let initialY = 0; let inactivityTimeout; let lastX = 0; const timeout = 25; const maxDegrees = 50; // Event listeners pegman.addEventListener('mousedown', onMouseDown); document.addEventListener('mousemove', onMouseMove); document.addEventListener('mouseup', onMouseUp);
Lassen Sie uns jede Funktion aufschlüsseln:
onMouseDown
Dadurch wird das Ziehen gestartet, indem die anfängliche Mausposition aufgezeichnet und das isDragging-Flag umgeschaltet wird.
const onMouseDown = (e) => { isDragging = true; initialX = e.clientX; initialY = e.clientY; };
onMouseMove
Dies verwaltet Pegmans Bewegung und Drehung während des Ziehens. Es gewährleistet:
- Die Drehung bleibt innerhalb eines bestimmten Bereichs (um extreme Winkel wie Superman-Fliegen zu vermeiden).
- Der Rotationswert wird dynamisch mit --r aktualisiert.
const onMouseMove = (e) => { if (!isDragging) return; const dy = e.clientY - initialY; const dx = e.clientX - initialX; // Limit rotation range let rx = Math.max(-maxDegrees, Math.min(maxDegrees, dx - lastX)); pegman.setAttribute('style', `--r: ${rx}deg`); // Animate Pegman's position pegman.animate({ translate: `${dx}px ${dy}px` }, { duration: 100, fill: 'forwards', }); // Reset rotation after inactivity clearTimeout(inactivityTimeout); inactivityTimeout = setTimeout(() => { lastX = dx; pegman.setAttribute('style', `--r: 0deg`); }, timeout); };
onMouseUp
Dadurch wird Pegmans Status zurückgesetzt, sobald der Benutzer aufhört zu ziehen:
- Rotation wird auf 0 zurückgesetzt.
- Pegman kehrt sanft in seine ursprüngliche Position zurück.
const onMouseUp = () => { isDragging = false; // Reset rotation pegman.setAttribute('style', `--r: 0`); // Animate Pegman back to its original position pegman.animate({ translate: `0px 0px` }, { duration: 500, fill: 'forwards', easing: 'ease', }); // Clear residual state inactivityTimeout = setTimeout(() => { lastX = 0; }, timeout); };
Letzte Gedanken
Dieser Ausschnitt zeigt, wie einfache Animationen und Interaktivität ein ikonisches Benutzererlebnis schaffen können. Wichtige Erkenntnisse:
- Durch die Verwendung benutzerdefinierter CSS-Eigenschaften (wie --r) bleibt das Styling dynamisch und überschaubar.
- Rotationsbegrenzungen sorgen für ein ausgefeiltes, natürliches Gefühl bei Benutzerinteraktionen.
- Auszeiten und Beschleunigungsanimationen verleihen der Bewegung Realismus.
Fühlen Sie sich frei, den CodePen zu teilen, Änderungen vorzunehmen und mir Ihre Meinung mitzuteilen! ???️
Übrigens...
Ich verwende die Original-Sprites von Google, die Sie hier sehen und experimentieren können:
- Landebahnzustand
- Drop-Status
- baumelnder Zustand
Wussten Sie schon? ✨ Der Google Maps-Standort, den ich verwendet habe, ist das echte Weihnachtsmanndorf!
Lustige Tatsache: Der finnische Name des Weihnachtsmanns ist Joulupukki und er stammt ursprünglich aus Finnland ???
Das obige ist der detaillierte Inhalt vonSo erstellen Sie den legendären Pegman aus Google Maps neu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In Artikel wird die CSS -Margin -Eigenschaft erörtert, insbesondere "Margin: 40px 100px 120px 80px", seine Anwendung und Auswirkungen auf das Webseitenlayout.

In dem Artikel werden die CSS -Grenzeigenschaften erörtert und sich auf Anpassung, Best Practices und Reaktionsfähigkeit konzentriert. Hauptargument: Border-Radius ist für reaktionsschnelle Designs am effektivsten.

In dem Artikel werden CSS -Hintergrundeigenschaften, deren Verwendungszwecke für die Verbesserung des Website -Designs und die zu vermeidenen Fehler erläutert. Der Hauptaugenmerk liegt auf reaktionsschnellem Design unter Verwendung der Hintergrundgröße.

In Artikel werden CSS HSL -Farben, ihre Verwendung im Webdesign und die Vorteile gegenüber RGB erörtert. Der Schwerpunkt liegt auf der Verbesserung des Designs und der Zugänglichkeit durch intuitive Farbmanipulation.

In dem Artikel wird die Verwendung von Kommentaren in CSS erörtert, in denen Einzellinien- und Multi-Line-Kommentarsyntaxe beschrieben werden. Es wird argumentiert, dass die Kommentare die Lesbarkeit, die Wartbarkeit und die Zusammenarbeit von Code verbessern, sich jedoch auf die Leistung der Website auswirken können, wenn sie nicht ordnungsgemäß verwaltet werden.

In dem Artikel werden CSS -Selektoren, ihre Typen und die Verwendung zum Styling von HTML -Elementen erörtert. Es vergleicht ID- und Klassenauswahlern und befasst sich mit Leistungsproblemen mit komplexen Selektoren.

In dem Artikel wird die CSS -Priorität erläutert und sich auf Inline -Stile mit der höchsten Spezifität konzentriert. Es erklärt Spezifitätsniveaus, übergeordnete Methoden und Debugging -Tools zur Verwaltung von CSS -Konflikten.

In Artikel werden drei Methoden zum Hinzufügen von CSS zu HTML erörtert: Inline, intern und extern. Die Auswirkungen jeder Methode auf die Leistung und Eignung der Website für Anfänger werden analysiert. (159 Zeichen)


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor
