日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

响应式多级菜单 侧边菜单栏_使用纯HTML和OmniFaces构建动态响应的多级菜单

發布時間:2023/12/3 HTML 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 响应式多级菜单 侧边菜单栏_使用纯HTML和OmniFaces构建动态响应的多级菜单 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

響應式多級菜單 側邊菜單欄

最近,我不得不使用JSF 2.2創建一個響應式多級菜單。 要求:菜單應:

  • 從后端使用動態結構創建
  • React靈敏,例如對桌面和移動設備友好
  • 有帶有導航鏈接的子菜單項
  • 支持觸摸事件
  • 支持鍵盤輔助功能

PrimeFaces的菜單不是一個選擇。 實際上,可以通過模型以編程方式創建它們,但是:

  • 他們沒有真正回應
  • 子菜單項只能折疊/展開子菜單,不能包含導航鏈接

好吧,為什么不選擇任何基于jQuery的響應式多級菜單插件呢? 有很多插件。 請參閱響應式導航和菜單模式的有用列表 。 我選擇了FlexNav 。

但是如何輸出動態菜單結構呢? ui:repeat在這里不是一個選擇,因為該結構(嵌套子菜單等)不是先驗的。 幸運的是,OmniFaces帶有o:tree ,它可以通過在標記中聲明JSF組件或HTML元素來完全控制樹層次結構的標記。 o:tree本身不會呈現任何HTML標記。 正是我需要的!

我最后得到了這個XHTML片段,它混合了o:treeNode,o:treeNodeItem,o:treeInsertChildren和由提到的FlexNav菜單定義HTML元素:

<h:outputScript library="js" name="jquery.flexnav.js"/> <h:outputStylesheet library="css" name="flexnav.css"/><ul id="mainnavi" class="flexnav" data-breakpoint="640" role="navigation"><o:tree value="#{mainNavigationBean.treeModel}" var="item"><o:treeNode level="0"><o:treeNodeItem><li class="item"><a href="#{item.href}" title="#{item.title}">#{item.text}</a><o:treeInsertChildren/></li></o:treeNodeItem></o:treeNode><o:treeNode><ul><o:treeNodeItem><li><a href="#{item.href}" title="#{item.title}">#{item.text}</a><o:treeInsertChildren/></li></o:treeNodeItem></ul></o:treeNode></o:tree> </ul><h:outputScript id="mainnaviScript" target="body">$(document).ready(function () {$("#mainnavi").flexNav({'calcItemWidths': true});}); </h:outputScript>

帶菜單項的OmniFaces的TreeModel是通過編程創建的。 Java代碼如下所示:

public TreeModel<NavigationItemDTO> getTreeModel() {// get menu model from a remote serviceNavigationContainerDTO rootContainer = remoteService.fetchMainNavigation(...);TreeModel<NavigationItemDTO> treeModel = new ListTreeModel<>();buildTreeModel(treeModel, rootContainer.getNavItem());return treeModel; }private void buildTreeModel(TreeModel<NavigationItemDTO> treeModel, List<NavigationItemDTO> items) {for (NavigationItemDTO item : items) {buildTreeModel(treeModel.addChild(item), item.getNavItem());} }

最終結果(桌面版本):

請注意,子菜單是可單擊的,并且可以在鼠標懸停時展開。

您會發現,JSF非常靈活,有時您不需要成熟的組件。 玩得開心!

翻譯自: https://www.javacodegeeks.com/2014/12/building-dynamic-responsive-multi-level-menus-with-plain-html-and-omnifaces.html

響應式多級菜單 側邊菜單欄

總結

以上是生活随笔為你收集整理的响应式多级菜单 侧边菜单栏_使用纯HTML和OmniFaces构建动态响应的多级菜单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久久免费视频 | 伊人久久久久噜噜噜亚洲熟女综合 | 希岛婚前侵犯中文字幕在线 | 黄色片在线免费看 | 亚洲AV无码成人精品区明星换面 | 中国性老太hd大全69 | 欧美老女人bb | 日韩不卡毛片 | 在线免费看污网站 | av卡一卡二| 51久久久 | 国产+日韩+欧美 | 亚洲精品男人天堂 | 91精品视频免费在线观看 | avwww.| 一区二区福利视频 | 成人欧美一区二区三区在线播放 | 久久国产柳州莫菁门 | 亚洲专区在线视频 | 视频在线观看你懂的 | 国产777 | 欧美青草视频 | 日韩在线中文字幕视频 | 伊人三级 | www.亚洲视频 | 自拍第1页 | 五月网婷婷 | 97公开视频 | 欧美一区二区二区 | 国产初高中真实精品视频 | 大陆农村乡下av | 欧美精品国产一区 | www.黄色在线 | 欧美视频一区二区 | 三级三级久久三级久久 | 人人干天天干 | 高清一区二区三区视频 | wwwav网站| 中文字幕精品无码亚 | 蝌蚪网在线视频 | 黄色录象片 | 男女做的视频 | 日韩高清黄色 | 日本高清视频网站 | 18pao国产成视频永久免费 | 久久久久亚洲av无码专区体验 | 久久精工是国产品牌吗 | 91尤物在线 | 51调教丨国产调教视频 | 性活交片大全免费看 | 夫妻性生活黄色大片 | 性xxxx搡xxxxx搡欧美 | 国产一区二区在线免费观看 | 精品婷婷色一区二区三区蜜桃 | 亚洲色图视频网站 | 91精品国产一区二区 | 一区二区三区黄 | 爽爽淫人 | 337p粉嫩大胆噜噜噜亚瑟影院 | 国产成人无码一区二区在线播放 | 香蕉视频一区二区三区 | 成人午夜激情影院 | 免费看污片的网站 | 国产一区二区精彩视频 | 日本熟妇色xxxxx日本免费看 | 中国妇女做爰视频 | 综合五月婷 | 亚洲无码精品一区二区三区 | 日韩欧美亚洲天堂 | 欧美xxxx视频 | 99久久精品免费看国产四区 | 精品人妻一区二区三区三区四区 | 伊人网久久久 | 91免费在线视频 | 免费av影视| 91禁蘑菇在线看 | 老司机在线精品视频 | 偷偷在线观看免费高清av | 日韩久久精品一区二区 | 一级淫片a| 玖玖999| 粗大黑人巨茎大战欧美成人 | av中文字幕免费在线观看 | 久久人人澡 | 美女视频黄色 | 免费av一级片 | 手机在线观看av片 | 亚洲一区二区三区高清 | 777久久久 | 婷婷射| 国产男女视频在线观看 | 日韩少妇视频 | 国产欧美视频在线 | 黄色网址进入 | 91网站在线看 | 日本一区二区三区四区五区 | 免费毛片播放 | 亚洲AV无码成人片在线观看 | 国产美女主播在线观看 |