导航菜单ui/navMenu
基本用法
import { VNode, render } from "ui/control";
import NavMenu from "ui/navMenu";
var navMenu = render(
__root__,
<NavMenu onItemClick={console.log} items={[{
icon: "★",
content: "菜单1",
children: [
{
icon: "★",
content: "菜单2"
},
{
icon: "★",
content: "菜单3"
}
]
}, {
icon: "★",
content: "菜单4"
}]}>
</NavMenu>
);
render(
__root__,
<button onClick={() => navMenu.toggleCollapse()}>切换折叠模式</button>
)
样式
<ul class="x-navmenu">
<li class="x-navmenu-collapsable">
<a href="javascript:;"><i class="x-icon">★</i><span>菜单1</span></a>
<ul>
<li class="x-navmenu-selected">
<a href="javascript:;"><i class="x-icon">★</i><span>菜单2</span></a>
</li>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单2</span></a>
</li>
<li class="x-navmenu-collapsable">
<a href="javascript:;"><i class="x-icon">★</i><span>菜单2</span></a>
<ul>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单3</span></a>
<ul class="x-navmenu-collapsable">
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单3</span></a>
</li>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单3</span></a>
</li>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单3</span></a>
</li>
</ul>
</li>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单3</span></a>
</li>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单3</span></a>
</li>
</ul>
</li>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单2</span></a>
</li>
</ul>
</li>
<li class="x-navmenu-selected">
<a href="javascript:;"><i class="x-icon">★</i><span>菜单1</span></a>
</li>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单1</span></a>
</li>
<li class="x-navmenu-collapsable">
<a href="javascript:;"><i class="x-icon">★</i><span>菜单1</span></a>
<ul>
<li>
<a href="javascript:;"><i class="x-icon">★</i><span>菜单2</span></a>
</li>
</ul>
</li>
</ul>
API
NavMenu 类
继承自:Control
表示一个导航菜单。
字段 | 类型 | 描述 | 继承自 |
---|---|---|---|
⮞
onSelect
: (item: HTMLElement, e: MouseEvent, sender: NavMenu) => boolean | void
选择项事件。 |
function
|
选择项事件。 |
— |
⮞
onChange
: (e: MouseEvent, sender: NavMenu) => void
选中项改变事件。 |
function
|
选中项改变事件。 |
— |
⮞
onCollapseChange
: (e: MouseEvent, sender: NavMenu) => void
切换折叠事件。 |
function
|
切换折叠事件。 |
— |
⮞
onItemCollapseChange
: (item: HTMLElement, e: MouseEvent, sender: NavMenu) => void
切换项折叠事件。 |
function
|
切换项折叠事件。 |
— |
⮞
items
: NavMenuItem[]
菜单数据。 |
NavMenuItem[]
|
菜单数据。 |
— |
⮞
selectedItem
: HTMLElement
当前选中项。 说明项是一个 |
HTMLElement
|
当前选中项。 |
— |
⮞
collapsed
: boolean
是否折叠整个菜单。 |
boolean
|
是否折叠整个菜单。 |
— |
⮞
readyState
: ControlState
|
ControlState
|
获取当前控件的渲染状态。 |
Control |
⮞
elem
: HTMLElement
|
HTMLElement
|
关联的元素。 |
Control |
⮞
vNode
: VNode
|
VNode
|
(保护的)获取当前控件关联的虚拟节点。 |
Control |
⮞
sourceVNode
: VNode
|
VNode
|
获取创建该控件使用的源虚拟节点。 |
Control |
⮞
alwaysUpdate
: boolean
|
boolean
|
控件是否使用主动更新模式。 |
Control |
⮞
body
: HTMLElement
|
HTMLElement
|
(只读)获取用于包含子控件和节点的根元素。 |
Control |
⮞
duration
: number = 200
|
number
|
渐变的持续毫秒数。如果为 0 则不使用渐变。 |
Control |
⮞
class
: string
|
string
|
CSS 类名。 |
Control |
⮞
style
: string | { [key: string]: string | number; }
|
string | object
|
控件样式。 |
Control |
⮞
id
: string
|
string
|
控件序号。 |
Control |
⮞
content
: NodeLike
|
NodeLike
|
控件内容。 |
Control |
⮞
onSelectStart
: (e: Event, sender: NavMenu) => void
|
function
|
选择开始事件。 |
Control |
⮞
onClick
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
点击事件。 |
Control |
⮞
onAuxClick
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
中键点击事件。 |
Control |
⮞
onDblClick
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
双击事件。 |
Control |
⮞
onContextMenu
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
右键菜单事件。 |
Control |
⮞
onMouseDown
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
鼠标按下事件。 |
Control |
⮞
onMouseUp
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
鼠标按上事件。 |
Control |
⮞
onMouseOver
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
鼠标移入事件。 |
Control |
⮞
onMouseOut
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
鼠标移开事件。 |
Control |
⮞
onMouseEnter
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
鼠标进入事件。 |
Control |
⮞
onMouseLeave
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
鼠标离开事件。 |
Control |
⮞
onMouseMove
: (e: MouseEvent, sender: NavMenu) => void
|
function
|
鼠标移动事件。 |
Control |
⮞
onWheel
: (e: WheelEvent, sender: NavMenu) => void
|
function
|
鼠标滚轮事件。 |
Control |
⮞
onScroll
: (e: UIEvent, sender: NavMenu) => void
|
function
|
滚动事件。 |
Control |
⮞
onTouchStart
: (e: TouchEvent, sender: NavMenu) => void
|
function
|
触摸开始事件。 |
Control |
⮞
onTouchMove
: (e: TouchEvent, sender: NavMenu) => void
|
function
|
触摸移动事件。 |
Control |
⮞
onTouchEnd
: (e: TouchEvent, sender: NavMenu) => void
|
function
|
触摸结束事件。 |
Control |
⮞
onTouchCancel
: (e: TouchEvent, sender: NavMenu) => void
|
function
|
触摸撤销事件。 |
Control |
⮞
onPointerEnter
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针进入事件。 |
Control |
⮞
onPointerLeave
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针离开事件。 |
Control |
⮞
onPointerOver
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针移入事件。 |
Control |
⮞
onPointerOut
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针移开事件。 |
Control |
⮞
onPointerDown
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针按下事件。 |
Control |
⮞
onPointerMove
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针移动事件。 |
Control |
⮞
onPointerUp
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针松开事件。 |
Control |
⮞
onPointerCancel
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针取消事件。 |
Control |
⮞
onGotPointerCapture
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针开始捕获事件。 |
Control |
⮞
onLostPointerCapture
: (e: PointerEvent, sender: NavMenu) => void
|
function
|
指针停止捕获事件。 |
Control |
方法 | 描述 | 继承自 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
⮞
handleItemClick(e, item)(e:
(保护的)点击项事件。
返回值类型: |
(保护的)点击项事件。 |
— | ||||||||||||
⮞
buildMenu(items)(items:
|
(保护的)从数据创建菜单项。 |
— | ||||||||||||
⮞
selectItem(item, ...)(item:
选择项。
返回值类型: 如果选择成功则返回 true,否则返回 false。 |
选择项。 |
— | ||||||||||||
⮞
toggleItemCollapse(item, ...)(item:
切换项的折叠状态。
返回值类型: |
切换项的折叠状态。 |
— | ||||||||||||
⮞
handleItemPointerEnter(e, item)(e:
(保护的)鼠标移入折叠项事件。
返回值类型: |
(保护的)鼠标移入折叠项事件。 |
— | ||||||||||||
⮞
handleItemPointerLeave(e, item)(e:
(保护的)鼠标移出折叠项事件。
返回值类型: |
(保护的)鼠标移出折叠项事件。 |
— | ||||||||||||
⮞
toggleCollapse(...)(e?:
切换菜单折叠。
返回值类型: |
切换菜单折叠。 |
— | ||||||||||||
⮞
render()():
|
(保护的)(已覆盖)当被子类重写时负责返回当前控件的虚拟节点。 |
Control |
||||||||||||
⮞
init()():
|
(保护的)(已覆盖)当被子类重写时负责在关联元素后初始化当前控件。 |
Control |
||||||||||||
⮞
uninit()():
|
(保护的)当被子类重写时负责在元素被取消关联前取消初始化当前控件。 |
Control |
||||||||||||
⮞
update()():
|
重新渲染当前控件。 |
Control |
||||||||||||
⮞
layout(changes)(changes:
|
重新布局当前控件。 |
Control |
||||||||||||
⮞
invalidate()():
|
使当前控件无效并在下一帧重新渲染。 |
Control |
||||||||||||
⮞
renderTo(parent, ...)(parent:
|
将当前控件渲染到指定的父控件或节点。 |
Control |
||||||||||||
⮞
find(selector)(selector:
|
在当前控件查找指定的子控件或节点。 |
Control |
||||||||||||
⮞
query(selector)(selector:
|
在当前控件查找匹配的所有子控件或节点。 |
Control |
NavMenuItem 接口
表示一个菜单项。
字段 | 类型 | 描述 |
---|---|---|
⮞
icon
: string
图标。 |
string
|
图标。 |
⮞
content
: string
标题。 |
string
|
标题。 |
⮞
href
: string
链接地址。 |
string
|
链接地址。 |
⮞
target
: string
链接目标。 |
string
|
链接目标。 |
⮞
title
: string
标题。 |
string
|
标题。 |
⮞
collapsed
: boolean
是否默认折叠。 |
boolean
|
是否默认折叠。 |
⮞
selected
: boolean
是否默认选中。 |
boolean
|
是否默认选中。 |
⮞
children
: NavMenuItem[]
子菜单。 |
NavMenuItem[]
|
子菜单。 |