Magnet-Button Effekte mit JavaScript
Buttons die sich zum Cursor bewegen — der Magnet-Effekt. Lerne, wie du Näherungs-basierte Interaktionen implementierst.
Mehr erfahrenErsetze den Standard-Cursor durch einzigartige Designs. Wir zeigen dir, wie du SVG-basierte Pointer mit CSS implementierst und verschiedene Zustände handelst.
Der Standard-Cursor ist überall gleich — langweilig und unpersönlich. Es’s eine Chance, deine Website oder Anwendung einzigartiger zu machen. Ein maßgeschneiderter Pointer schafft sofort einen stärkeren Eindruck und vermittelt deinem Publikum, dass du Aufmerksamkeit für Details aufbringst.
Mit CSS und SVG kannst du erstaunliche Cursor-Effekte erstellen, ohne JavaScript-Komplexität. Die Kombination bietet dir maximale Kontrolle über das Aussehen und die Interaktionen. Egal ob minimalistische Designs oder spielerische Effekte — deine Möglichkeiten sind praktisch unbegrenzt.
Das Einfachste zuerst. Die CSS
cursor
-Eigenschaft ist dein Startpunkt. Du kannst sie auf jedem Element verwenden, um zu definieren, wie der Pointer aussieht, wenn er über dieses Element fährt.
Es gibt vordefinierte Werte wie
pointer
,
hand
,
text
und viele mehr. Aber das Echte startet, wenn du Custom-Images hinzufügst. Mit
cursor: url(path/to/image.svg), auto;
kannst du SVG-Dateien laden — oder PNG-Dateien, wenn dir das lieber ist.
Der zweite Wert (
auto
) ist ein Fallback, falls die Custom-Datei nicht lädt. Das’s eine gute Praxis — sei nicht zu sicher, dass deine Ressourcen immer verfügbar sind.
Beginne mit einer einfachen SVG-Datei. Ein Kreis, ein Dreieck oder eine benutzerdefinierte Form — alles funktioniert. Die Dateigröße sollte klein sein (unter 5KB), damit der Browser sie schnell laden kann. Halte dein Design einfach. Zu komplexe SVGs machen den Cursor träge und beeinträchtigen die Benutzererfahrung.
Speichere deine SVG im assets-Ordner, idealerweise in einem dediziertes Cursor-Verzeichnis. Verwende dann CSS, um sie zu laden. Die Syntax ist unkompliziert:
cursor: url('assets/cursors/custom-pointer.svg'), auto;
Der Hotspot ist der exakte Punkt, wo Klicks registriert werden. Ohne Definition nimmt der Browser die obere linke Ecke des Bildes. Das fühlt sich falsch an. Nutze die Syntax:
cursor: url('pointer.svg') 10 5, auto;
wobei 10 und 5 die X- und Y-Koordinaten in Pixeln sind.
Verschiedene Cursor für verschiedene Situationen. Ein Pointer für normale Bereiche, ein Hand-Symbol über Links, ein Text-Cursor über Eingabefeldern. Das verbessert die Benutzerführung erheblich. Mit CSS-Selektoren erreichst du das mühelos —
a { cursor: url('hand.svg'), pointer; }
Ein guter Cursor ändert sich, je nachdem, womit der Benutzer interagiert. Das schafft visuelles Feedback und macht die Oberfläche lebendiger.
Links und Buttons sollten einen Hand- oder Click-Cursor zeigen. Das signalisiert sofort, dass etwas anklickbar ist. Verwende unterschiedliche Designs für Hover-Zustände — wenn der Benutzer über einen Link fährt, könnte sich der Pointer vergrößern oder die Farbe wechseln.
Textfelder verdienen einen Text-Cursor. Über Checkboxen könnte ein anderer Pointer sinnvoll sein. Dein Ziel: Die Benutzer sollten sofort verstehen, was sie machen können.
Mit
:hover
Pseudo-Klassen änderst du den Cursor dynamisch. Wenn’s möglich ist, verwende zwei unterschiedliche SVG-Dateien — eine für den normalen Zustand, eine für Hover. Das schafft Tiefe und Interaktivität.
Große Custom-Cursor machen die Website langsamer. Browser müssen sie bei jeder Mausbewegung rendern. Halten deine SVGs unter 1KB wenn möglich. Ein 32×32 Pixel Cursor ist die perfekte Größe — nicht zu klein zum Erkennen, nicht zu groß, um Performance zu beeinträchtigen.
Moderne Browser unterstützen SVG-Cursor problemlos. Aber ältere Versionen können Probleme haben. Das’s warum der Fallback-Wert wichtig ist.
cursor: url(...), auto;
— wenn das SVG nicht funktioniert, greift der Browser auf den Standard zurück.
Spielerische Cursor sind cool, aber nicht auf Kosten der Usability. Stelle sicher, dass dein Custom-Cursor ausreichend kontrastreich ist. Benutzer mit Sehbehinderungen müssen den Cursor leicht finden können. Ein weißer oder gelber Pointer auf dunklem Hintergrund funktioniert besser als Grautöne.
Verwende denselben Custom-Cursor auf allen Seiten. Das schafft Markenidentität. Wenn jede Seite einen anderen Cursor hat, wirkt das chaotisch und verwirrend. Ein durchdachtes Design-System mit 2-3 Cursor-Varianten ist besser als ständige Wechsel.
Hier’s ein konkretes Code-Beispiel, das du sofort verwenden kannst:
* {
cursor: url('assets/cursors/pointer.svg') 10 5, auto;
}
a {
cursor: url('assets/cursors/hand.svg') 10 5, pointer;
}
button {
cursor: url('assets/cursors/click.svg') 10 5, pointer;
}
input[type="text"],
textarea {
cursor: url('assets/cursors/text.svg') 10 5, text;
}
a:hover {
cursor: url('assets/cursors/hand-active.svg') 10 5, pointer;
}
Dieses Setup gibt dir ein solides Fundament. Die Hotspot-Werte (10 5) sind Ausgangspunkte — experimentiere mit deinen eigenen SVGs, um die optimale Position zu finden. Teste auf verschiedenen Geräten, um sicherzustellen, dass alles reibungslos funktioniert.
Benutzerdefinierte Mauszeiger mögen wie ein kleines Detail wirken, aber sie haben echten Impact. Sie verbessern die Benutzererfahrung, schaffen visuelle Kohärenz und machen deine Website oder Anwendung einprägsamer. Mit CSS und SVG ist die Implementierung überraschend einfach — keine JavaScript-Magie nötig.
Beginne mit einem einfachen Design, teste es gründlich und passe es basierend auf Benutzerfeedback an. Achte auf Performance und Barrierefreiheit. Wenn du diese Balance findest, schaffst du Interfaces, die nicht nur funktionieren, sondern sich auch fantastisch anfühlen.
Möchtest du noch tiefer einsteigen? Erkunde verwandte Themen wie Magnet-Button Effekte, Cursor-Trails und Partikel-Animationen. Jede Technik baut auf diesen Grundlagen auf.
Magnet-Buttons entdeckenDie in diesem Artikel beschriebenen Techniken sind basierend auf aktuellen Web-Standards und Best Practices. Browser-Kompatibilität kann variieren, insbesondere bei älteren Versionen. Wir empfehlen dir, deine Custom-Cursor auf verschiedenen Geräten und Browsern zu testen. Die Barrierefreiheit sollte immer Priorität haben — stelle sicher, dass deine Designs nicht die Benutzerfreundlichkeit beeinträchtigen.