JavaScript库,用于创建切换的画布外多级导航,允许无休止地嵌套子菜单元素,支持滑动手势、键盘交互和ARIA属性。

Posted

tags:

中文标题:JavaScript库,用于创建切换的画布外多级导航,允许无休止地嵌套子菜单元素,支持滑动手势、键盘交互和ARIA属性。 原文标题:JavaScript library for creating toggled off-canvas multi-level navigations, allowing endless nesting of submenu elements, supporting swipe gestures, keyboard interactions and ARIA attributes. 项目评级:Star:313      Fork:81 下载地址:https://github.com/somewebmedia/hc-offcanvas-nav 详情介绍

HC非画布导航

用于使用ARIA创建画布外多级导航的JavaScript库。不依赖,但也可以作为jQuery插件使用。演示

特征

快速启动

安装

此软件包可以与以下组件一起安装:

或者下载最新版本。

包括HC非画布导航

脚本和Css标记

Webpack/浏览器化

在脚本中,包括HC的画布外导航通常如下所示:

巴别塔

AMD(异步模块定义)

如果使用AMD,模块将自动定义为hcOffcanvasNav

南海

用法

一旦您的菜单元素在DOM中可用,请务必调用Nav。

香草JS

jQuery公司

为了让HC离画布Nav作为jQuery插件工作,jQuery必须是全局window对象的属性,所以在与Babel/Webpack/Browserify和jQuery组合使用时要小心。

HTML菜单结构示例

主题

HC非画布导航目前有两个主题,默认主题和Carbon主题。要使用碳主题,只需调用碳主题css,而不是默认的css:

或者,如果从src目录编译SCSS,则从@include目录编译:

选项

<表格>

属性

默认

类型

描述

宽度

280

整数/字符串

导航的宽度。用于leftright位置

高度

'auto'

整数/字符串

导航的高度。用于topbottom位置

禁用时间

false

整数/布尔

分辨率,高于该分辨率可隐藏画布外菜单并显示原始菜单

推送内容

null

str/元素obj

打开导航时将推送的内容元素(字符串选择器或HTML元素对象)

扩展的

false

布尔

在展开模式下初始化菜单。它不会推送内容

位置

'left'

字符串

菜单将在其上打开的位置。可用选项:'left''right'、>1216>和'bottom'

滑动手势

true

布尔

像在本机应用程序中一样启用打开/关闭滑动手势。仅适用于leftright的位置

级别打开

'overlap'

字符串

子菜单分级打开效果。可用选项:'overlap''expand'、>1224>或false

级别间距

40

整数

如果级别重叠,这是它们之间的间距,如果它们正在扩展或始终打开,这是子菜单的文本缩进

级别标题

true

布尔

显示子菜单的标题,即父项名称。仅适用于重叠的标高

导航标题

null

str/元素obj

主导航(一级)标题。也可以是像图像(徽标)一样的HTML对象

导航类

''

字符串

自定义导航类

残疾人身体

true

布尔

导航打开时禁用身体滚动

关闭打开级别

true

布尔

导航关闭时,是否应关闭所有打开的子层

关闭活动级别

false

布尔

应在导航关闭时清除初始激活的子级别(见data-nav-active

点击关闭

true

布尔

单击链接时关闭导航

按Esc关闭

true

布尔

关闭Esc按钮上的导航

自定义切换

null

str/元素obj

自定义导航切换元素

activeToggleClass(活动切换类)

null

字符串

自定义活动切换类

插入关闭

true

布尔/int

插入导航关闭按钮。您也可以使用一个整数来表示基于0的索引,该索引将是按钮在列表中的位置。也支持负数

插入返回

true

布尔/int

在子菜单中插入后退按钮。您也可以使用一个整数来表示基于0的索引,该索引将是按钮在列表中的位置。也支持负数。仅适用于重叠的标高

标签关闭

''

字符串

clo标签

se按钮

标签返回

'Back'

字符串

后退按钮的标签

级别标题返回

true

布尔

使用级别标题作为背面标签

rtl公司

false

布尔

将内容方向设置为从右到左

车身插入件

'prepend'

字符串

选择将导航前置或附加到正文

保留类

true

布尔

应保留或排除原始菜单及其项目类

删除原始导航

false

布尔

从DOM中删除原始菜单。如果计划更新导航,请不要使用此选项

ariaLabels(咏叹调标签)

...

目标

ARIA属性的标签。如果使用HC非画布导航的语言与英语不同,则应翻译所有属性。请参阅下一节

特定元素上aria-label属性的ARIA标签,将为屏幕上没有可见文本的元素提供文本替代。

方法

HC Off-canvas Nav API提供了两种方法来控制offcanvas,并对所有活动实例公开可用。

香草JS

jQuery公司

.getSettings()(获取设置)

返回当前设置。

.isOpen()(打开)

检查导航是否打开,并返回布尔值。

.update(选项,updateDOM)

使用新设置仅更新指定的设置。

更新导航DOM。您不必传递空的设置对象,该方法是明智的。当原始导航被更改时使用此选项。

更新设置和导航DOM。当原始导航更改时使用此选项,并且您还想更新一些特定设置。

.open(级别、索引)

如果关闭,打开导航。

打开导航和特定的子菜单。每个级别的子菜单都有自己的索引,该索引相对于该级别,而不是父菜单。

以上代码将打开以下示例结构中的嵌套菜单:

.close()(关闭)

如果打开,关闭导航。

.thoggle()

切换(打开/关闭)导航。

.on(事件名称,cb)

将事件侦听器连接到导航。

.off(事件名称,cb)

从导航中删除事件侦听器。

事件

<表格>

事件

描述

打开

每次打开导航后触发

打开级别

每次打开任何级别后都会触发

关闭

每次关闭导航后触发

关闭

只有在导航关闭后第一次触发,然后它会自行分离

闭合液位

每次关闭任何级别后都会触发

拨动

每次触发打开或关闭导航时触发

所有事件都返回Event对象作为第一个参数,并返回插件Settings对象作为第二个参数。

导航动画结束后会触发打开和关闭事件,而切换事件会立即触发。

示例:

数据属性

<表格>

收件人

接受

HTML元素

描述

数据导航激活

<ul><li>

下次打开导航时,它将打开指定的子菜单(或父<li>元素具有该属性的子菜单)。适用于expanded选项

数据导航突出显示

<li>

突出显示列表项

数据导航自定义内容

<li>

附在清单项目上。将按原样克隆项目的内容

数据导航关闭

布尔

<a>

附加在项目链接上。告诉导航是否需要点击关闭

WordPress数据属性集成

如果你想让你的WordPress主题导航数据做好准备,只需将此代码放在functions.php文件中,它就可以开箱即用了。不要将此自定义Walker分配给您的wp_nav_menu参数!如果你已经使用了自己的自定义Walker,也不用担心,这个代码会处理所有事情。

开发人员大楼

这个包裹随Gulp一起提供。以下任务可用:

如果您不想缩小编译后的JS和Css,可以传递--dev命令。

许可证

代码和文档是根据麻省理工学院许可证发布的。

在普通JavaScript中切换多个类

通过javascript动态设置<a>标签内的引​​导数据切换

用于列表可视化的 Javascript 库(数据结构)

画布中图像的 CORS 设置

HTML5怎样创建画布?

HTML5怎样创建画布?