PageRenderTime 53ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/src/menubutton/demo.html

https://github.com/xiiiiiin/kissy
HTML | 315 lines | 268 code | 44 blank | 3 comment | 0 complexity | 5c2dcf497d8fc49cdb87dfe0678177ef MD5 | raw file
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <title>menubutton 测试</title>
  6. <link href="../button/tests/common.css" rel="stylesheet"/>
  7. <link href="../button/tests/custombutton.css" rel="stylesheet"/>
  8. <link href="tests/menubutton.css" rel="stylesheet"/>
  9. <link href="../overlay/assets/cool.css" rel="stylesheet"/>
  10. <link href="../menu/tests/menu.css" rel="stylesheet"/>
  11. <link href="../menu/tests/menuitem.css" rel="stylesheet"/>
  12. <link href="../menu/tests/submenu.css" rel="stylesheet"/>
  13. <link href="../menu/tests/c2c-ui.css" rel="stylesheet"/>
  14. <style>
  15. .ks-menu {
  16. background: white;
  17. border: 1px solid red;
  18. }
  19. li {
  20. padding: 5px;
  21. border: 1px solid white;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <h1 id="describe">菜单按钮演示</h1>
  27. <div style="height:200px;overflow: auto;border:1px solid red;">
  28. <h2>设计说明</h2>
  29. <ol>
  30. <li>支持键盘鼠标互操作</li>
  31. <li>符合 wai-aria 规范</li>
  32. <li>构建组件层次</li>
  33. </ol>
  34. <h2>使用说明</h2>
  35. <ol>
  36. <li>
  37. tab 移动焦点到按钮按钮周边粉框
  38. </li>
  39. <li>
  40. 按钮获得焦点时点击上或下键弹出菜单
  41. <ol>
  42. <li>或点击按钮弹出菜单</li>
  43. </ol>
  44. </li>
  45. <li>
  46. 菜单弹出后上下键选择菜单项
  47. <ol>
  48. <li>或通过鼠标掠过</li>
  49. </ol>
  50. </li>
  51. <li>
  52. 带有子菜单的菜单项通过右键激活子菜单左键收缩子菜单
  53. <ol>
  54. <li>或通过鼠标掠过自动弹出子菜单</li>
  55. </ol>
  56. </li>
  57. <li>
  58. 菜单项弹出后按下 enter space 则选中当前高亮菜单项
  59. <ol>
  60. <li>或通过鼠标点击选中任意菜单项</li>
  61. </ol>
  62. </li>
  63. <li>
  64. esc 隐藏下拉菜单焦点仍然在按钮上
  65. <ol>
  66. <li>或通过鼠标点击文档空白区域按钮失去焦点</li>
  67. </ol>
  68. </li>
  69. </ol>
  70. </div>
  71. <h1>普通菜单</h1>
  72. <div id="button_container" role='application'>
  73. </div>
  74. <br/>
  75. <div id="log" style="height:300px;border:1px solid green;overflow:auto;display: none;">
  76. </div>
  77. <label>禁用<input type="checkbox" id='dis'/></label>
  78. <h2>checked menu</h2>
  79. <div role='application' id="exist">
  80. </div>
  81. <h2>
  82. select 生成
  83. </h2>
  84. <div id="parentSelect">
  85. <select name="decorateSelect" id="decorateSelect">
  86. </select>
  87. </div>
  88. <h2>层联 select</h2>
  89. <a href="demo/cascade-select.html" target="_blank">cascade select</a>
  90. <script src="../../build/kissy.js"></script>
  91. <script src="../../build/uibase.js"></script>
  92. <script src="../component/modelcontrol.js"></script>
  93. <script src="../component/render.js"></script>
  94. <script src="../component/container.js"></script>
  95. <script src="../component.js"></script>
  96. <script src="../button/base.js"></script>
  97. <script src="../button/buttonrender.js"></script>
  98. <script src="../button/nativerender.js"></script>
  99. <script src="../button/css3render.js"></script>
  100. <script src="../button/customrender.js"></script>
  101. <script src="../button.js"></script>
  102. <script src="../menu/menuitemrender.js"></script>
  103. <script src="../menu/menuitem.js"></script>
  104. <script src="../menu/submenurender.js"></script>
  105. <script src="../menu/submenu.js"></script>
  106. <script src="../menu/menurender.js"></script>
  107. <script src="../menu/menu.js"></script>
  108. <script src="../menu/popupmenurender.js"></script>
  109. <script src="../menu/separatorrender.js"></script>
  110. <script src="../menu/popupmenu.js"></script>
  111. <script src="../menu/separator.js"></script>
  112. <script src="../menu.js"></script>
  113. <script src="menubuttonrender.js"></script>
  114. <script src="menubutton.js"></script>
  115. <script src="select.js"></script>
  116. <script src="option.js"></script>
  117. <script src="../menubutton.js"></script>
  118. <!--
  119. <script src="http://assets.daily.taobao.net/s/kissy/1.2.0/kissy.js"></script>
  120. -->
  121. <script>
  122. KISSY.ready(function(S) {
  123. var s = S.one("#decorateSelect");
  124. for (var i = 0; i < 20; i++) {
  125. s.append("<option value='" + i + "'>项目" + i + "</option>")
  126. }
  127. });
  128. KISSY.ready(function(S) {
  129. KISSY.use("node,menubutton,menu", function(S, Node, MenuButton, Menu) {
  130. function log(s) {
  131. Node.one("#log").append(new Node("<p>" + s + "</p>"));
  132. Node.one("#log")[0].scrollTop = Node.one("#log")[0].scrollHeight;
  133. }
  134. if (true)
  135. (function() {
  136. var sb = new Menu.PopupMenu({
  137. prefixCls:"goog-"
  138. });
  139. sb.addChild(new Menu.Item({content:"已买到的宝贝",
  140. prefixCls:"goog-"}));
  141. sb.addChild(new Menu.Item({content:"已卖出的宝贝",
  142. prefixCls:"goog-",disabled:true}));
  143. var sb2 = new Menu.PopupMenu({
  144. prefixCls:"goog-"
  145. });
  146. sb2.addChild(new Menu.Item({content:"收藏的宝贝",
  147. prefixCls:"goog-"}));
  148. sb2.addChild(new Menu.Item({content:"收藏的店铺",
  149. prefixCls:"goog-"}));
  150. var b2 = new Menu.SubMenu({
  151. content:"收藏夹",
  152. prefixCls:"goog-",
  153. menu:sb2
  154. });
  155. sb.addChild(b2);
  156. var b = new Menu.SubMenu({
  157. content:"我的淘宝",
  158. menu:sb,
  159. prefixCls:"goog-"
  160. });
  161. var alone = new Menu.Item({content:"我要买",prefixCls:"goog-"});
  162. var menu = new Menu.PopupMenu({
  163. prefixCls:"goog-",
  164. children:[b,
  165. new Menu.Separator({prefixCls:"goog-"}),
  166. alone,
  167. new Menu.Item({content:"我要卖",prefixCls:"goog-"})]
  168. });
  169. //model and control
  170. //view as a parameter
  171. var bbbbb = new MenuButton({
  172. prefixCls:"goog-",
  173. content:"淘宝网",
  174. describedby:"describe",
  175. menu:menu,
  176. render:"#button_container",
  177. autoRender:true
  178. });
  179. menu.on("click", function(ev) {
  180. log("selected : " + ev.target.get("content"));
  181. });
  182. //or
  183. //b.render()
  184. var dis = Node.one("#dis");
  185. dis.on("click", function() {
  186. if (dis[0].checked) {
  187. bbbbb.set("disabled", true);
  188. } else {
  189. bbbbb.set("disabled", false);
  190. }
  191. });
  192. if (dis[0].checked) {
  193. bbbbb.set("disabled", true);
  194. } else {
  195. bbbbb.set("disabled", false);
  196. }
  197. })();
  198. if (true)
  199. (function() {
  200. var sb = new Menu.PopupMenu({
  201. prefixCls:"goog-"
  202. });
  203. sb.addChild(new Menu.Item({
  204. content:"submenuitem1",
  205. checkable:true,
  206. prefixCls:"goog-"}));
  207. sb.addChild(new Menu.Item({
  208. content:"submenuitem2",
  209. checkable:true,
  210. prefixCls:"goog-"}));
  211. var sb2 = new Menu.PopupMenu({
  212. prefixCls:"goog-"
  213. });
  214. sb2.addChild(new Menu.Item({
  215. content:"submenuitem11",
  216. checkable:true,
  217. prefixCls:"goog-"}));
  218. sb2.addChild(new Menu.Item({
  219. content:"submenuitem22",
  220. checkable:true,
  221. prefixCls:"goog-"}));
  222. var b2 = new Menu.SubMenu({
  223. content:"sub-sub-menu",
  224. prefixCls:"goog-",
  225. menu:sb2
  226. });
  227. sb.addChild(b2);
  228. var b = new Menu.SubMenu({
  229. content:"submenu",
  230. prefixCls:"goog-",
  231. menu:sb
  232. });
  233. var menu = new Menu.PopupMenu({
  234. prefixCls:"goog-",
  235. children:[
  236. b,
  237. new Menu.Item({content:"alone",
  238. checkable:true,
  239. prefixCls:"goog-"})
  240. ]
  241. });
  242. var exist = new MenuButton({
  243. render:"#exist",
  244. content:"多选菜单",
  245. prefixCls:"goog-",
  246. menu:menu
  247. });
  248. exist.render();
  249. })();
  250. (function() {
  251. var select = MenuButton.Select.decorate('#decorateSelect', {
  252. prefixCls:"c2c-",
  253. width:82,
  254. menuCfg:{
  255. width:82,
  256. height:150,
  257. elStyle:{
  258. overflow:"auto",
  259. overflowX:"hidden"
  260. }
  261. }
  262. });
  263. select.on("click", function(e) {
  264. alert(e.target.get("value"));
  265. });
  266. })();
  267. });
  268. });
  269. </script>
  270. </body>
  271. </html>