介绍
@shortcm/menu
是一个简单易用的 JavaScript 组件,用于创建自定义菜单。它非常适合用于快速构建响应式的网站和 Web 应用程序。该组件支持多层嵌套,可定制样式,支持键盘导航和响应式布局。
安装
使用 npm 进行安装:
npm install @shortcm/menu
使用
引入组件:
import Menu from '@shortcm/menu'; import '@shortcm/menu/dist/style.css';
在 HTML 中创建一个容器:
<div id="menu"></div>
初始化组件:
-- -------------------- ---- ------- ----- ---- - --- ------------- - ----- - - ------ ------- ----- --- -- - ------ -------- ----- ---- --------- - - ------ ---------- ----- --- -- - ------ ------- ----- --- -- - -- - ------ ---------- ----- --- -- -- ---
配置选项:
-- -------------------- ---- ------- ----- ---- - --- ------------- - ----- --- -- ----- ----------- ------ -- ---- ----------- ------ -- --------- ------ -------- -- --------------- -------------- ------ -- --------------------------- --------- ------ -- ------ ----------- ----- -- ----- ------------- ----- -- ------------------- ---------- ------ -- ------- ------------------ ------------ -- ------ ------------ ----- -- --------- ------------- ----- -- ---------- --------------- ----- -- ----------- ------------- ----- -- ---------- --------------- ----- -- ---------- ---
示例
一个简单的例子:
-- -------------------- ---- ------- ------ ---- ---- ---------------- ------ ------------------------------- ----- ---- - --- ------------- - ----- - - ------ ------- ----- --- -- - ------ -------- ----- ---- --------- - - ------ ---------- ----- --- -- - ------ ------- ----- --- -- - -- - ------ ---------- ----- --- -- -- ---
深入
data
必须的选项,data
属性是一个数组,它包含用于创建菜单的菜单项对象。每个菜单项对象必须具有 title
属性和 href
属性。如果要添加子菜单,可以将子菜单项包含在 children
属性中。
-- -------------------- ---- ------- ----- ---- - - - ------ ------- ----- --- -- - ------ -------- ----- ---- --------- - - ------ ---------- ----- --- -- - ------ ------- ----- --- -- - -- - ------ ---------- ----- --- -- -- ----- ---- - --- ------------- - ----- ----- ---
theme
theme
属性可用于选择菜单的主题。支持两个主题:light
和 dark
。
const menu = new Menu('#menu', { data: [], theme: 'dark', });
horizontal
horizontal
属性用于指定菜单的方向是垂直还是水平。默认值为 false
(垂直)。
const menu = new Menu('#menu', { data: [], horizontal: true, });
alignRight
alignRight
属性可用于在水平模式下将菜单项向右对齐。默认值为 false
。
const menu = new Menu('#menu', { data: [], horizontal: true, alignRight: true, });
multiple
multiple
属性可用于指定菜单是否支持多选。默认值为 false
。
const menu = new Menu('#menu', { data: [], multiple: true, });
responsive
responsive
属性用于启用或禁用响应性。默认值为 true
。
const menu = new Menu('#menu', { data: [], responsive: false, });
toggleButton
toggleButton
属性可用于在响应式模式下启用或禁用切换按钮。默认值为 true
。
const menu = new Menu('#menu', { data: [], responsive: true, toggleButton: false, });
searchBox
searchBox
属性可用于在菜单中显示或隐藏搜索框。默认值为 false
。
const menu = new Menu('#menu', { data: [], searchBox: true, });
searchPlaceholder
searchPlaceholder
属性可用于更改搜索框的占位符文本。
const menu = new Menu('#menu', { data: [], searchBox: true, searchPlaceholder: 'Search menu...', });
onItemClick
onItemClick
属性可用于单击菜单项时调用的回调函数。
const menu = new Menu('#menu', { data: [], onItemClick: function(item) { console.log(item); }, });
onItemSelect
onItemSelect
属性可用于选择(单击)菜单项时调用的回调函数。
const menu = new Menu('#menu', { data: [], onItemSelect: function(item) { console.log(item); }, });
onItemDeselect
onItemDeselect
属性可用于取消选择菜单项时调用的回调函数。
const menu = new Menu('#menu', { data: [], onItemDeselect: function(item) { console.log(item); }, });
onItemExpand
onItemExpand
属性可用于展开菜单项时调用的回调函数。
const menu = new Menu('#menu', { data: [], onItemExpand: function(item) { console.log(item); }, });
onItemCollapse
onItemCollapse
属性可用于折叠菜单项时调用的回调函数。
const menu = new Menu('#menu', { data: [], onItemCollapse: function(item) { console.log(item); }, });
结论
@shortcm/menu
是一个易于使用且非常功能强大的 JavaScript 组件,它使您能够快速构建自定义菜单。它允许您拥有完全控制权并定制样式,支持多层菜单和键盘导航。以上是本文对 @shortcm/menu
npm 包的使用教程,希望对您有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671a130d09270238223a3