Filtrify 面板内搜索功能详解:标签中搜标签,键盘上下键秒选,打造流畅筛选体验
2026/8/24 10:20:52 网站建设 项目流程

Filtrify 面板内搜索功能详解:标签中搜标签,键盘上下键秒选,打造流畅筛选体验

【免费下载链接】filtrifyBeautiful advanced tag filtering with HTML5 and jQuery项目地址: https://gitcode.com/gh_mirrors/fi/filtrify

Filtrify 是一个基于 HTML5 与 jQuery 的轻量级标签筛选插件,它最讨喜的设计之一就是筛选面板内的搜索功能:在标签列表里直接输入关键词“标签中搜标签”,再用键盘上下键秒选、回车确认,即可快速完成多标签过滤。本文面向新手,带你弄懂这套面板内搜索 + 键盘快捷选择的完整体验。

🎯 什么是 Filtrify:让 data 属性变成筛选菜单

Filtrify 的工作方式非常直接:页面上每个列表项通过data-*属性携带标签(如类型、演员、导演),插件启动后自动解析出所有分类和标签,并在指定占位区生成一个筛选菜单。

点击某个分类标签,会弹出一个筛选面板(panel)。面板由四部分构成,搜索框是其中的核心:

面板组件作用
搜索框ft-search输入关键词,实时过滤面板内的标签列表
已选区ft-selected展示当前已选中的标签,点击可取消
标签列表ft-tags全部标签,按字母排序,附匹配数量
无结果提示ft-mismatch搜索无匹配时显示 “No results match ...”

面板、搜索框、高亮样式均定义在css/filtrify.css中,逻辑集中在js/filtrify.js(生产环境可直接引用压缩版js/filtrify.min.js)。

🔍 “标签中搜标签”:面板内搜索的 4 个行为细节

打开任意分类面板后,搜索框会自动获得焦点(见js/filtrify.js中的openPanelbringToFront方法),你可以立刻开始打字。它的行为有四个值得注意的细节:

  1. 实时过滤,无需回车:每输入一个字符,不匹配的标签立即隐藏,命中的标签保持可见,第一个命中项自动获得高亮。
  2. 忽略大小写:匹配时对输入与标签文本同时转大写比较,输 “nolan” 和 “Nolan” 效果一致。
  3. 已选标签不受搜索影响:当前已选中的标签在搜索时不会被隐藏,保证已选状态始终可见、可撤销。
  4. 无匹配友好提示:如果一个标签都搜不到,面板会显示No results match "关键词",文案可通过noresults选项自定义;重新清空输入后提示自动消失。

另外,面板一旦关闭,搜索框和标签列表会自动重置(resetSearch方法),下次打开仍是完整状态,不会“脏”掉你的筛选条件。

⌨️ 键盘上下键秒选:从搜索到过滤只需 3 个键

搜索只是第一步,Filtrify 把“找到 → 选中 → 过滤”压缩成了纯键盘操作,全程不用碰鼠标:

按键行为
↓ 下方向键高亮移动到下一个可见标签,高亮自动向下滚动跟随
↑ 上方向键高亮移动到上一个可见标签,自动向上滚动
Enter 回车确认当前高亮:加入已选区、更新查询、列表立即重新过滤

这套键盘逻辑位于js/filtrify.jsevents方法中(监听keydown/keyup,键码 38、40 为上下方向键,13 为回车)。几个细节让体验格外顺滑:

  • 首次按方向键:若当前没有高亮项,会自动选中第一个可见标签,按下一次就有反馈,不会“空转”。
  • 自动防溢出滚动preventOverflow方法会检测高亮项是否被列表滚动条“切掉”,越界时自动把列表滚动到合适位置,高亮永远在视野内。
  • 方向键不会打断输入keyup阶段会拦截上下方向键,避免方向键意外把焦点移出搜索框,你可以边打字边上下翻。
  • 重复点击即取消:已选中的标签再按一次回车会被移出查询,配合列表实时刷新,改条件非常灵活。

🎬 实战示例:在电影库里秒选“诺兰的科幻片”

示例页movies.html(多分类演示)为 190 余部影片挂载了三个标签分类:data-genre(类型)、data-main-actors(主演)、data-director(导演)。以“找诺兰的科幻片”为例:

  1. 点击director面板标签,搜索框自动聚焦;
  2. 输入 “Nolan”,标签列表瞬间收敛到 Christopher Nolan 一项;
  3. 按 Enter,Nolan 进入已选区,影片列表只剩他的作品;
  4. 再打开genre面板,输入 “Sci-Fi”,上下键翻到 Sci-Fi 后回车。

两步键盘操作,列表实时收敛到“诺兰执导的科幻片”。单分类场景可参考music.html;更多用法见query.html(带初始查询启动)、trigger.html(程序触发查询)、reset.html(一键重置筛选)、close.html(选中后自动关闭面板)、block.html(排除特定 data 属性不生成分类)。

✅ 给初学者的 3 条实用建议

  • 标签多的场景优先用面板内搜索:几十个标签靠肉眼找很慢,输入 + 方向键 + 回车是效率最高的路径。
  • 自定义无结果文案:中文项目建议通过noresults选项把默认英文提示改成自己的文案,更贴合用户语境。
  • 配合close选项做精简交互:选完即关面板,适合移动端或卡片流页面,进一步减少操作步骤。

📁 相关文件速览

文件说明
js/filtrify.js插件完整源码,面板内搜索与键盘选择逻辑在eventssearchmoveHighlight方法中
js/filtrify.min.js压缩版,生产环境直接引用
css/filtrify.css面板、搜索框、高亮与滚动条样式
movies.html多分类(类型/演员/导演)完整示例
music.html单分类示例
query.htmltrigger.htmlreset.html程序化查询、触发与重置示例
close.htmlblock.html自动关面板、屏蔽指定属性的示例

从输入关键词到标签列表收敛,再到方向键秒选、回车过滤,Filtrify 的面板内搜索把“多标签筛选”这件繁琐的事,变成了一连串轻快的键盘操作——这正是它被称为“beautiful advanced tag filtering”的原因。

【免费下载链接】filtrifyBeautiful advanced tag filtering with HTML5 and jQuery项目地址: https://gitcode.com/gh_mirrors/fi/filtrify

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询