简单菜单按钮/从已有元素生成
Source
Output
QRCode
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>简单菜单按钮/从已有元素生成</title>
<link rel="stylesheet" type="text/css" href="//g.alicdn.com/kissy/k/5.0.1/css/base.css">
<link rel="stylesheet" type="text/css" href="//g.alicdn.com/kissy/k/5.0.1/button/assets/dpl.css">
<link rel="stylesheet" type="text/css" href="//g.alicdn.com/kissy/k/5.0.1/menubutton/assets/dpl.css">
<link rel="stylesheet" type="text/css" href="//g.alicdn.com/kissy/k/5.0.1/menu/assets/dpl.css">
<style type="text/css">
.ks-button-focused{
border-color:orange;
}
</style>
<script src="//g.alicdn.com/kissy/k/5.0.1/seed-debug.js" data-config="{combine:true}"></script>
</head>
<body>
<h1>简单菜单按钮/从已有元素生成</h1>
<div style="margin : 0 auto; width : 80%; border:1px solid red; overflow : auto; height:400px;">
<div>
<h1>菜单按钮说明</h1>
<h2>设计说明</h2>
<ol>
<li>支持键盘,鼠标互操作</li>
<li>符合 wai-aria 规范</li>
<li>构建组件层次</li>
</ol>
<h2>使用说明</h2>
<ol>
<li>
tab 移动焦点到按钮:按钮周边粉框
</li>
<li>
按钮获得焦点时点击上或下键,弹出菜单
<ol>
<li>或点击按钮弹出菜单</li>
</ol>
</li>
<li>
菜单弹出后,上下键选择菜单项
<ol>
<li>或通过鼠标掠过</li>
</ol>
</li>
<li>
带有子菜单的菜单项通过右键激活子菜单,左键收缩子菜单
<ol>
<li>或通过鼠标掠过,自动弹出子菜单</li>
</ol>
</li>
<li>
菜单项弹出后,按下 enter 或 space 则选中当前高亮菜单项
<ol>
<li>或通过鼠标点击选中任意菜单项</li>
</ol>
</li>
<li>
esc 隐藏下拉菜单(焦点仍然在按钮上)
<ol>
<li>或通过鼠标点击文档空白区域(按钮失去焦点)</li>
</ol>
</li>
</ol>
</div>
</div>
<div style="margin : 0 auto; width : 80%;">
<h1>示例:</h1>
<p>应用button相应的class可以使用button定义好的样式,更多样式请看button示例</p>
</div>
<div id="container" style="margin : 0 auto; width : 80%;">
<p>全新生成节点:</p>
</div>
<div id="container2" style="margin : 0 auto; width : 80%;">
<p>从已有元素生成(html结构必须符合规范和相应的class):</p>
<div class="ks-menu-button ks-button ks-button-success" id="exist" tabindex="0">
<div class="ks-menu-button-content">我的淘宝</div>
<div class="ks-menu-button-dropdown ks-button-dropdown">
<div class="ks-menu-button-dropdown-inner ks-button-dropdown-inner">
</div>
</div>
<div class="ks-menu ks-popupmenu">
<div class="ks-popupmenu-content">
<div class="ks-menuitem ks-menuitem-checkable">已买到的宝贝</div>
<div class="ks-menuitem ks-menuitem-checkable">已卖出的宝贝</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
require(['menu', 'menubutton'], function(Menu, MenuButton){
var myMenuButton1 = new MenuButton({ //全新生成节点
content : '我的淘宝',
render : '#container',
matchElWidth : false,
elCls : 'ks-button-info ks-button-large', //可以加上button相应的class来应用button样式,更多样式请看button的示例
menu : {
xclass : 'popupmenu',
children : [
{
xclass : 'menuitem', //通过xclass来生成menuitem
content : '已买到的宝贝'
},
new Menu.Item({ //通过构造器来生成menuitem
content : '已卖出的宝贝'
})
],
listeners : {
click : function(ev){
S.log(ev.target.get('content'));
}
}
}
});
myMenuButton1.render();
var myMenuButton2 = new MenuButton({ //从已有元素生成
srcNode : '#exist',
matchElWidth : false,
listeners : {
click : function(ev){
S.log(ev.target.get('content'));
}
}
});
myMenuButton2.render();
});
</script>
</body>
</html>