Scrollbars on Hover

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Erstens sind Scrollbalken eine Frage der Benutzerfreundlichkeit und Zugänglichkeit. Zweitens, eine Faustregel: Wenn ein Bereich scrollbar ist, sollte er einen sichtbaren Scrollbalken haben. Aber das Web ist ein großer Ort und ich mag Tricks, also werde ich die Idee behandeln, sie nur beim Hovern anzuzeigen. Sogar macOS selbst¹ verbirgt Scrollbalken standardmäßig und zeigt sie kontextbezogen und bei Interaktion an. Dasselbe auf iOS, was zu verwirrenden Momenten führt.

Davon abgesehen, hier ist eine Möglichkeit, Scrollbalken standardmäßig auszublenden und sie nur anzuzeigen, wenn das Element angefahren wird. Sie wurde von Thomas Gladdines erstellt, der mir auch darüber geschrieben hat

Bei schnellen Tests auf meinem Rechner funktioniert es in Chrome, Firefox und Safari, unabhängig von meinen macOS-Einstellungen. Ziemlich robust also.

Der Trick ist, dass mask den Scrollbalken abdeckt! Wenn Sie also eine mask erstellen, die genau so breit ist wie der Scrollbalken (hier rate ich nur, dass 17px ihn abdecken werden) und sehr, sehr hoch ist (beides sollte wahrscheinlich von einem Skript berechnet werden), kann sie den Scrollbalken perfekt abdecken. Sie können sogar die Position der Maske transition, um einen Ein-/Ausblendeffekt zu simulieren. Sehr clever.

Bemerkenswert ist, dass dies der *echte* Scrollbalken des Elements ist und kein gefälschter. Einen gefälschten zu erstellen, könnte ein anderer Ansatz sein. Ben Nadel hat behandelt, wie Slack das macht. Ihr Trick besteht darin, den Scrollbalken in einem Bereich rendern zu lassen, der durch Overflow verborgen ist, und einen virtuellen Scrollbalken zu erstellen, der den nativen nachahmt (über den Sie dann direktere Kontrolle hätten). Es ist auch kein Erzwingen des Scrollbalkens, was etwas anderes ist, das Sie tun können, wenn Sie motiviert sind. Und nichts davon hindert Sie daran, den Scrollbalken zu stylen, was sogar einige Vorteile haben könnte, wie die Angabe seiner exakten Breite.

  1. Wie ich schreibe: „Wenn Ihr Gerät Gesten zulässt, werden Scrollbalken ausgeblendet, bis Sie mit dem Scrollen beginnen. Andernfalls sind sie sichtbar.“ ↩️