Filter多条件筛选
多条件筛选可以直观的通过点选完成条件组合,纯css实现,用户可按需扩展功能,适用于分类信息网站的列表页。
前言
当列表有许多筛选条件时,单纯的使用表单元素,例如:radio组、checkbox组、select组件等,难免会有些繁琐;针对多条件筛选的列表页,通常采用像分类信息列表那样,将所有筛选条件展开,通过点选的方式实现条件组合。
由于具体条件内容未知,所以应该由用户自行定义筛选条件,本组件并未使用window.customElements.define
方法注册,而是纯css实现,以便于用户自行扩展。
简单使用
本组件名称为ax-filter
,基本的html结构为:ax-filter -> _filter-wrap -> section -> rep=head/body -> -> rep=level1/level2 -> a 。
被选中的项追加selected
属性,禁用项追加disabled
属性。
二级分类
支持显示二级分类,容器使用rep=level2
标签。子节点也支持selected
和disabled
属性。
使用广告
在多条件筛选容器顶部可使用_filter-banner
节点放置一个通栏广告。
由于通栏广告在移动端表现不佳,所以通常需要做自适应处理。此时可考虑使用picture
标签,匹配不同屏幕尺寸以显示不同的通栏广告图。
使用搜索
在多条件筛选容器的某section
中追加使用_filter-search
样式类以表明搜索条板块。
在rep=body
中可放置ax-search
组件和rep=hot
节点,rep=head
节点可省略。
用户可自行扩展ax-search
组件,详细用法请点击这里。
使用表单域
多条件筛选中也可以使用传统的表单域完成条件组合,包括radio
组、checkbox
组、select
组件、range
组件等。
由于表单域有默认宽度,用户可自行覆盖其宽度。
关于表单域组件具体用法可点击: ax-radios单选组件, ax-checkboxes多选组件, ax-select下拉选择组件, ax-range滑块组件, ax-rate评星组件
更多行内组件可自行查找,详情请点击这里。
预览条件
当完成条件组合后可另起一个section存放当前的条件以预览,此时可使用ax-tags
标签组,或者使用单个ax-tag
标签组件。
关于tags
模块,详细用法请点击这里。
关于_tags
和_tag
纯css标记,详细用法请点击这里。
可折叠
当筛选条件过多时可折叠次要条件,仅显示主要条件。步骤如下:
- 对次要条件的section使用
_filter-other
包裹。 - 在_filter-other节点以外使用
_filter-toggle
标签,并写一点js
折叠逻辑。
slideToggle
方法是框架内置的,用于切换元素的隐藏状态。
- 输出
- HTML
_filter-other
节点默认为隐藏状态,如果需要初始化显示而不折叠,可使用如下方法:
- 对ax-filter标签设置style变量,
--_filter-d:block
表示将_filter-other的style.display
设为block
。 - 对_filter-toggle标签追加
_opened
样式类。
- 输出
- HTML
使用边框
如果需要追加边框可对ax-filter节点追加bordered
属性。
当然用户可以自行另外追加圆角、阴影等样式类。
使用内边距
如果需要内边距可对ax-filter节点追加padded
属性,使用内边距通常是在需要将筛选器融合进其他节点时使用。