Ich interessiere mich schon lange für Designmuster. Häufige und bewährte Lösungen für Designprobleme. Zu viele Einstellungen, um sie auf einmal anzuzeigen, und es verwirrt den Benutzer? Packen Sie sie in logische Gruppen und verwenden Sie ein Akkordeon-Designmuster! Muster wurden mit dem Aufkommen des responsiven Designs noch interessanter. Wie halten sich diese Muster, wenn sich der verfügbare Bildschirmplatz ändert?
Wir könnten vielleicht sechs oder mehr Tabs auf einem Laptop-Bildschirm unterbringen, aber auf den meisten Mobilgeräten ist es nur wirklich praktikabel, drei unterzubringen. Was tun wir? Vielleicht funktioniert das Umwandeln in ein Akkordeon.
Brad Frost hat großartige Arbeit geleistet, indem er ein Repository von Responsive Patterns pflegt. Brad, Dave und ich saßen nach InControl herum und sprachen über Designmuster, die noch nicht so viel erforscht worden waren. Dave erwähnte „Suche mit Filtern“ als Beispiel. Es kann eine Menge UI bei einem Suchfilter geben, daher haben Sie die Herausforderung, diese anzuzeigen, ohne zu viel Platz für die eigentlichen Ergebnisse einzunehmen, und dem Benutzer zu ermöglichen, diese Filter zu ändern, ohne zu störend zu sein.
Auf dem Desktop können Sie ein Design mit getrennten Spalten erstellen, wobei die Filter links und viel Platz für die Ergebnisse sind.

Auf einem kleineren Bildschirm haben Sie jedoch nicht den Platz, um dieses geteilte Panel zu realisieren. Sie können es jedoch in eine Spalte quetschen.

Beachten Sie, wie der Titel „Suchfilter“ zu einem offensichtlichen Link wurde (nur CSS-Änderungen). Diese einfache Filtergruppe nimmt bereits ziemlich viel Platz ein. Wenn es komplizierter wird, hätten Sie eine Vollbildfilterung, bevor Sie überhaupt Ergebnisse sehen. Wahrscheinlich ist es am besten, daraus einen Link zu machen, der die Filter ein- und ausblendet.

Nun stellt sich die Frage: Wie greift man auf diese Filter zu, wenn man weit genug nach unten gescrollt hat, sodass sie verschwunden sind? Vielleicht gibt es einen unendlichen Scroll von Suchergebnissen, was ein großartiges Muster für etwas wie Bilder sein kann. Aber Sie sind ziemlich weit nach unten gescrollt und möchten nun die Filter ändern. Vielleicht könnten wir, sobald wir an den Filtern vorbeigescrollt sind, eine „Filterleiste“ am oberen Bildschirmrand anbringen, die den Zugriff ermöglicht, egal wie weit Sie gescrollt haben.

Die sich genauso öffnen und ändern lässt wie wenn sie sich oben auf der Seite befindet.

Und das ergibt ein Muster!
Aber, [Einwand einfügen]!
Sicherlich deckt dieses Muster nicht alle möglichen Bedürfnisse ab. Designmuster tun das oft nicht. Es sind Muster, keine Vorgaben.
Google Bildersuche (zumindest auf iOS) hat ein paginiertes Raster von Bildern, sodass Sie die Kopfzeile, in der Sie filtern können, nicht aus den Augen verlieren.
Sollte die feste Leiste auch das Suchfeld enthalten? Vielleicht. Was passiert, wenn Sie einen Filter ändern und dadurch *mehr* angezeigt wird? Vielleicht scrollen Sie zum ersten neu angezeigten Element. Vielleicht bleiben Sie so nah wie möglich an Ihrer Position und erhalten einen visuellen Hinweis auf neue Ergebnisse anderswo. Würde ein „Zurück nach oben“-Link nicht genauso gut funktionieren? Vielleicht. Es sind alles nur Denkanstöße.
Das Muster
Die Technik dafür ist nicht besonders faszinierend. Ich bin mir nicht sicher, ob sie eine Zeile für Zeile CSS-Analyse verdient. Im Wesentlichen wird das Zwei-Spalten-Design in eines gequetscht, während eine schmale Bildschirm- Media Query übereinstimmt.
Das JavaScript zur Korrektur der Header-Position ist etwas interessanter. Ich habe im Wesentlichen diese „Persistente Header“-Technik verwendet. Nur in diesem Artikel wurden die Header geklont und der Klon bei Bedarf angezeigt. Ich fand das etwas übertrieben. In diesem Fall wird der Suchfilterbereich selbst einfach zur festen Position. Um den Sprung zu verhindern, der auftritt, wenn ein Element, das sich früher „im Fluss“ befand, aus dem Fluss gerät, messe ich die Höhe und füge Polsterung zur Kompensation hinzu.
Das gesamte JavaScript wird, da es sich um „Suche“ dreht, in einem einzigen Objekt zusammengefasst, was eine einfache, aber gute Methode zur Strukturierung von JavaScript ist.
Haben Sie eine Verbesserung? Ein anderes Muster, um dasselbe Problem zu lösen? Markieren Sie es mit „filtered-search“ auf CodePen.
Natürlich zeigt sich das eigentliche Problem, wenn man Mengen filtern muss, die noch nicht von der Seite geladen wurden.
Unendliches Scrollen birgt in dieser Hinsicht einige Probleme.
Ich bin verwirrt über die Notwendigkeit von JavaScript hier. Wäre es nicht einfacher, den Header im schmalen Modus immer auf
position:absolutezu setzen und seine Höhe als Polsterung über dem Raster hinzuzufügen?Haftungsausschluss: Kein Experte. Nicht einmal wirklich gut darin.
Danke fürs Teilen. Ich mag Ihre Kommentarvorschau sehr. Wie können wir sie auf unserer Website implementieren?
Ich habe kürzlich etwas Ähnliches gemacht und festgestellt, dass es gut ist, ein Mehrfachauswahlelement für die Filterung zu verwenden, da dies auf mobilen Plattformen eine schöne Standard-UI bietet, die auf Touch-Geräten nicht so fummelig ist wie Checkboxen oder Radio-Buttons.
Das Problem ist, dass die Benutzerfreundlichkeit und das Design in Desktop-Browsern so schlecht sind, dass ich immer noch an einer bestmöglichen Lösung für beide Welten arbeite, dies aber ohne JavaScript tun möchte.
Ich kannte das Repository von Responsive Patterns noch nicht.
Es ist es wert, in meinen Favoriten gespeichert zu werden.
Vielen Dank fürs Teilen!
Responsive Web Design (RWD) bietet eine optimale Benutzererfahrung, einfache Lesbarkeit und Navigation mit minimaler Größenänderung, Panoramaschwenks und Scrollen auf einer Vielzahl von Geräten, von Mobiltelefonen bis hin zu Desktops, durch die Verwendung von Flüssigkeitsrastern, flexiblen Bildern und der @media-Regel.
Toller Beitrag! Danke Chris.
Brad Frost hat ein großartiges Repository und einen großartigen Beitrag,
SDFASFSDFASFDFASFDFASFASFASDFASDFASDF
Und wenn Sie es oben anzeigen und beim Scrollen nach unten ausblenden, aber beim Scrollen nach oben anzeigen?
Ähnlich wie Google+ in seiner Android-App macht...
Hey,
Wir haben für die Filter auf unserer Website einen Side-Load-/Slide-In-Ansatz gewählt.
Schauen Sie mal rein: http://team.skroutz.gr/posts/implicit-design-patterns/
Ich hatte dieses Problem letzte Woche. Wir mussten einer bestehenden (kaum) responsiven Website Funktionalität hinzufügen. Ich habe etwas Ähnliches entwickelt: http://www.what2cook.com/recipes
Feste Elemente auf zoomfähigen Geräten sind keine gute Lösung :\