我一直对设计模式很感兴趣。设计问题的常见且行之有效的解决方案。设置过多而导致用户感到困惑?将它们分成逻辑组并使用手风琴设计模式!随着响应式设计的出现,模式变得更加有趣。这些模式如何在可用屏幕空间发生变化时保持其有效性?
我们可能能够在笔记本电脑屏幕上获得六个或更多选项卡,但在大多数移动设备上,实际上只能获得三个。我们该怎么办?也许 将它们转换为手风琴 会有效。
Brad Frost 在维护 响应式模式 的存储库方面做得非常出色。Brad、Dave 和我参加了 InControl 会议后闲聊,谈论了一些尚未得到充分探索的设计模式。Dave 提到了“带筛选器的搜索”作为一个例子。搜索筛选器可能涉及相当多的 UI,因此您面临着在不占用太多实际结果空间的情况下显示这些筛选器的挑战,以及允许用户更改这些筛选器而不会造成太大干扰的挑战。
在桌面端,您可以使用带左侧筛选器的分栏设计,并为结果留出充足的空间。

但在较小的屏幕上,您将没有足够的空间来实现该分栏面板。不过,您可以将其压缩到一列中。

请注意,“搜索筛选器”标题如何变成了一个明显的链接(仅 CSS 更改)。这组简单的筛选器已经占据了相当大的空间。如果再复杂一些,您可能需要先查看一整屏的筛选器才能看到任何结果。最好将其设为一个可以隐藏/显示筛选器的链接。

现在问题变成了:在向下滑动足够远以致筛选器消失后,如何访问这些筛选器?也许您有一个无限滚动的搜索,这对于图像之类的内容来说是一个很好的模式。但是,您已经向下滚动很远,现在想要更改筛选器。也许在我们滚动经过筛选器后,我们可以让一个“筛选器栏”附加到屏幕顶部,以便无论您向下滚动多远都能访问它。

它可以像在页面顶部一样打开和更改。

但是,[插入反驳]!
当然,这种模式并非涵盖所有可能的需求。设计模式通常并非如此。它们是模式,而不是模具。
Google 图片搜索(至少在 iOS 上)具有图像的分页网格,因此您不会丢失可以进行筛选的页眉的视线。
固定栏中是否也应该包含搜索字段?也许吧。如果您更改筛选器并显示更多内容会发生什么?也许滚动到它显示的第一个新内容。也许尽可能地保留它们的位置,并以视觉方式提示其他地方有新的结果。一个“返回顶部”链接是否也能起到同样的作用?也许吧。这仅仅是抛砖引玉。
模式
此 技术的 实现过程并不那么引人入胜。我不确定它是否值得逐行进行 CSS 分析。本质上,双栏设计在窄屏 媒体查询 匹配时被压缩成一栏。
修复页眉位置的 JavaScript 稍微有趣一些。我基本上使用了这个 “持久页眉” 技术。只是在那篇文章中,页眉被克隆,并在需要时显示克隆的页眉。我认为这有点笨拙。在本例中,搜索筛选器区域本身仅变为固定位置。为了防止元素从“在流中”变为“不在流中”时发生的跳跃,我测量高度并添加填充以进行补偿。
所有 JavaScript 代码,由于它们都与“搜索”相关,因此 保存在单个对象中,这是一种简单但不错的方法来构建 JavaScript。
您有改进意见吗?是否有其他模式可以解决相同的问题?在 CodePen 上添加 “filtered-search” 标签。
当然,当您需要筛选页面尚未加载的数据集时,真正的问题就出现了。
无限滚动在这方面带来了一些问题。
我对这里需要使用 Javascript 感到困惑。在屏幕较窄时,将页眉始终保持
position:absolute
并在其上方添加与页眉高度相同的填充,难道不是更简单吗?免责声明:不是专家。甚至在这方面也不是很擅长。
感谢分享。我非常喜欢您的评论预览。我们如何在自己的网站上实现它?
我最近做了一些类似的事情,发现使用多选元素进行筛选非常不错,因为在移动平台上,它提供了不错的默认 UI,在触摸设备上使用起来不像复选框或单选按钮那么麻烦。
问题是它们在桌面浏览器上的用户体验和设计非常糟糕,所以我仍在调整一个两全其美的解决方案,但希望在不依赖 JS 的情况下做到这一点。
我不知道响应式模式的存储库。
值得将其保存到我的收藏夹中。
感谢分享!
响应式网页设计 (RWD) 通过使用流体网格、灵活的图像和 @media 规则,在各种设备(从手机到桌面)上提供最佳的观看体验、易于阅读和导航,并且最大程度地减少了调整大小、平移和滚动操作。
精彩的文章!感谢 Chris。
Brad Frost 有一个很棒的存储库和一篇很棒的文章,
SDFASFSDFASFDFASFDFASFASFASDFASDFASDF
如果将其显示在顶部,向下滚动时隐藏,向上滚动时显示呢?
就像 Google+ 在其 Android 应用中所做的那样…
您好,
我们在我们的网站上采用了侧载/滑入式的方法来处理筛选器。
请查看:http://team.skroutz.gr/posts/implicit-design-patterns/
上周我遇到了这个问题。我们必须向一个现有的(勉强)响应式网站添加功能。我想出了一个类似的解决方案:http://www.what2cook.com/recipes
在可缩放设备上使用固定元素不是一个好的解决方案 :(