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标签。子节点也支持selecteddisabled属性。

使用广告

在多条件筛选容器顶部可使用_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标记,详细用法请点击这里

可折叠

当筛选条件过多时可折叠次要条件,仅显示主要条件。步骤如下:

  1. 对次要条件的section使用_filter-other包裹。
  2. 在_filter-other节点以外使用_filter-toggle标签,并写一点js折叠逻辑。

slideToggle方法是框架内置的,用于切换元素的隐藏状态。

_filter-other节点默认为隐藏状态,如果需要初始化显示而不折叠,可使用如下方法:

  1. 对ax-filter标签设置style变量,--_filter-d:block表示将_filter-other的style.display设为block
  2. 对_filter-toggle标签追加_opened样式类。

使用边框

如果需要追加边框可对ax-filter节点追加bordered属性。

当然用户可以自行另外追加圆角、阴影等样式类。

使用内边距

如果需要内边距可对ax-filter节点追加padded属性,使用内边距通常是在需要将筛选器融合进其他节点时使用。