Schneller Tipp So manipulieren Sie das Cursor-Erscheinungsbild mit CSS

In diesem kurzen Tipp erfahren Sie, wie Sie das Aussehen des Cursors mit CSS anpassen. Wir werden unseren Cursor in Pfeile ändern, um das Navigieren in einer Diashow zu erleichtern. Um es besser zu verstehen, gehen wir zwei separate Beispiele durch.

Hinweis: Das Ziel dieses Artikels ist es nicht, das Thema ausführlich zu behandeln Mauszeiger Syntax der Eigenschaft. Um eine genauere Untersuchung zu erhalten, sollten Sie die Ressourcen am Ende des Tutorials überprüfen.

Beispiel 1

Im ersten Beispiel wird erläutert, wie das Cursorbild in Abhängigkeit von der Mausposition geändert wird.

Hier ist die Demo, die wir in Aktion bauen werden:

1. Das HTML

Wir beginnen mit einem einfachen Bild:

2. Das CSS

Als Nächstes definieren wir zwei CSS-Klassen, die die Cursorbilder enthalten:

.Cursor-prev Cursor: URL (Cursor-prev.cur), auto; / * IE & Edge * / Cursor: URL (Cursor-prev.svg) 16 16, auto; / * Rest-Browser * / .cursor-next Cursor: URL (Cursor-Next.cur), auto; / * IE & Edge * / Cursor: URL (Cursor-next.svg) 16 16, auto; / * Restbrowser * /

Beachten Sie, dass wir für jede Regel zwei Cursor-Deklarationen angeben. Die erste Deklaration jeder Regel richtet sich an Microsoft-Browser, die zweite an andere Browser. Alle Werte zeigen auf ein Bild mit der Auto Keyword-Wert als Fallback.  

Es ist erwähnenswert, dass wir mehr als eine benutzerdefinierte URL oder ein benutzerdefiniertes Bild angeben können. Ein Browser versucht, sie anhand der in den Werten festgelegten Reihenfolge zu laden. Das heißt, zunächst wird versucht, das erste Bild zu laden. Wenn dieses Bild aus irgendeinem Grund nicht verfügbar ist, wird versucht, das zweite zu laden und so weiter. Wenn keines der Bilder vorhanden ist, wird das Fallback-Schlüsselwort verwendet.

Bevor wir fortfahren, heben wir einige aktuelle Einschränkungen hervor (auch nach meinen Tests) und erläutern, warum wir zwei separate Deklarationen festlegen:

  • Microsofts Browser unterstützen nur CUR und ANI als Formate.
  • Die Browser von Microsoft erlauben keine Einstellung des Ursprungs des Cursorbildes. In diesem Fall werden das Cursorbild und der Rest der Eigenschaft ignoriert. In unserem Fall setzen wir für die Nicht-Microsoft-Browser den Bildursprung auf die Mitte (Bilder sind 32 x 32)..

3. Das JavaScript

Wenn alle Seitenelemente fertig sind, wird die drin Funktion wird ausgeführt. 

Innerhalb dieser Funktion rufen wir zuerst die Bildbreite ab.

Als Nächstes führen wir jedes Mal, wenn wir über das Bild fahren, folgende Schritte aus:

  • Ruft die X-Koordinate des Mauszeigers relativ zum Bild ab, nicht relativ zum Browserfenster.
  • Entfernen Sie alle Klassen aus dem Bild.
  • Fügen Sie dem Bild je nach Mausposition die entsprechende Klasse hinzu. Wenn die Mausposition die halbe Bildbreite überschreitet, fügen Sie das hinzu Cursor weiter Klasse, sonst die Cursor-prev Klasse wird hinzugefügt.

Der Code, der für all dieses Verhalten verantwortlich ist, lautet wie folgt:

window.addEventListener ("load", init); Funktion init () const img = document.querySelector ("img"); const width = img.getBoundingClientRect (); const halfImgWidth = width / 2; img.addEventListener ("mousemove", Funktion (e) const xPos = e.pageX - img.offsetLeft; this.classList.remove ("Cursor-prev", "Cursor-next"); if (xPos> halfImgWidth) this.classList.add ("Cursor-next"); else this.classList.add ("Cursor-prev");); 

Beispiel # 2

Für das zweite Beispiel verwenden wir die in einem früheren Beitrag erstellte Demo. Schau mal:

Hier sehen Position und Aussehen der Navigationspfeile folgendermaßen aus:

Lassen Sie uns diese anpassen, um die Navigation zu erleichtern. Jeder der Pfeile sollte die Hälfte der Karussellbreite abdecken, und ihre Höhe sollte der Karussellhöhe entsprechen. Plus, wir werden die Vorteile nutzen Mauszeiger Eigenschaft, um die Pfeile-Symbole festzulegen.

Hier ist das erforderliche CSS:

.Eulen-Karussell .owl-nav [Klasse * = Eule-] Position: absolut; oben: 0; unten: 0; Breite: 50%; Marge: 0;  .owl-carousel .owl-nav .owl-prev left: 0; Cursor: URL (Cursor-prev.cur), verschieben; Cursor: URL (Cursor-prev.svg) 16 16, verschieben;  .owl-carousel .owl-nav .owl-next right: 0; Cursor: URL (Cursor-next.cur), verschieben; Cursor: URL (Cursor-next.svg) 16 16, verschieben;  .owl-carousel .owl-nav svg display: none; 

Beachten Sie, dass die Cursorbilder aus unserem vorherigen Beispiel stammen. Der einzige Unterschied ist, dass wir das angeben Bewegung Schlüsselwortwert als Fallback für den Fall, dass das zugehörige Bild nicht geladen werden kann.

Hier ist das Ergebnis:

Ihre Herausforderung (sollten Sie sich entscheiden, sie anzunehmen)

Diese Technik funktioniert in unserem Beispiel gut, abgesehen von einer Sache. Die Navigationspfeile befinden sich über dem Text der Folien, sodass wir nicht auf die Call-to-Action-Schaltflächen klicken können. 

Normalerweise könnte ein einfacher Fix ein positives Ergebnis sein z-index zu diesem Text (und geben Sie es Position: relativ). Diese Lösung funktioniert jedoch nicht, da sich Text und Pfeile in unterschiedlichen Stapelkontexten befinden (verwenden Sie den Browser-Inspektor, um sie anzuzeigen).. 

Wieder tritt dieses Problem für unsere Demo auf. In Ihren Projekten kann sich Ihre Struktur unterscheiden (z. B. haben Sie nur Bilder oder der Text befindet sich unter dem Bild), und möglicherweise treten Sie diesem Problem nicht auf. Außerdem verwenden Sie wahrscheinlich ein anderes Karussell mit einer anderen Auszeichnung.

In jedem Fall können Sie dieses Problem mithilfe von JavaScript lösen. Jedes Mal, wenn sich der benutzerdefinierte Cursor innerhalb der Grenzen der Zielschaltfläche / des Zieltextes befindet, erhält der zugehörige Pfeil ein Negativ z-index oder verschwindet. 

Versuchen Sie, dieses Update selbst herauszufinden, und veröffentlichen Sie Ihre Lösung in den Kommentaren!

Fazit

In diesem kurzen Tipp wurde beschrieben, wie Sie das Aussehen des Cursors mit CSS bearbeiten können. Wie wir gesehen haben, kann dies eine Herausforderung sein, da nicht alle Browser dieselbe Syntax unterstützen. Durch das Hinzufügen von Stilen zum Cursor können wir die Benutzererfahrung verbessern.

Lesen Sie weiter

  • Die Definition der Mauszeiger Eigenschaft in der CSS Basic User Interface-Modulebene 3 (CSS3-Benutzeroberfläche)
  • Verwenden von URL-Werten für die Cursor-Eigenschaft
  • Erstellen von Miniaturansichten für die Vorschau mit JavaScript-Mausereignissen