摘要:完整的代碼放在。鼠標事件組件通過點擊打開菜單,不符合大菜單場景,需要修改成,鼠標移入時打開菜單,鼠標移出時關閉菜單。鼠標移入時,顯示菜單。自適應屏幕寬度當屏幕尺寸小于像素時,菜單會自動折疊,恢復默認行為,通過點擊來打開菜單。
完整的代碼放在 jsFiddle Bootstrap Mega Menu 。
我們管 Mega Menu 叫做“大菜單”吧,“巨”、“超級”啥的,不足以彰顯我們的草根貴氣。
有道詞典:
Mega Menu: 大數據量網頁菜單;超級菜單式;巨型菜單;超級菜單。
基于Bootstrap Dropdown,實現一個大菜單,有三個問題要解決:
菜單容器的樣式復用 Yamm!3 的關鍵樣式。
/** Copy from Yamm!3 http://geedmo.github.io/yamm3/ */ .mega .nav, .mega .collapse, .mega .dropup, .mega .dropdown { position: static; } .mega .container { position: relative; } .mega .dropdown-menu { left: auto; } .mega .mega-content { padding: 20px 30px; } .mega .dropdown.mega-fw .dropdown-menu { left: 0; right: 0; }鼠標事件
Bootstrap Dropdown 組件通過點擊打開菜單,不符合大菜單場景,需要修改成,鼠標移入時打開菜單,鼠標移出時關閉菜單。
鼠標移入時,顯示菜單。
鼠標移出時,隱藏菜單。
鼠標點擊菜單中的鏈接時,隱藏菜單。
$(function() { $("body") .on("mouseenter", "li.dropdown", function() { !$("li.dropdown").hasClass("hover") && $(this).addClass("hover"); }) .on("mouseleave", "li.dropdown", function() { $("li.dropdown").hasClass("hover") && $(this).removeClass("hover"); }) .on("click", "a.menu-link", function() { var $this = $(this); setTimeout(function() { $this.closest("li.dropdown").removeClass("hover"); }, 100); }); });自適應屏幕寬度
當屏幕尺寸小于768像素時,菜單會自動折疊,恢復Bootstrap默認行為,通過點擊來打開菜單。
有個取巧的方法,我們使用一個只在屏幕大于768像素時生效的.hover類,這樣一來,屏幕超過768像素,菜單是通過鼠標進入打開,而屏幕小于768像素時,使用Bootstrap Dropdown的默認行為,即通過點擊來打開和關閉菜單。
@media (min-width: 768px) { /* disable dropping down on mouse click */ ul.nav li.open > ul.dropdown-menu { display: none; } /* enable dropping down on mouse hover */ ul.nav li.dropdown.hover > ul.dropdown-menu { display: block; } /* changing caret pointing direction on hover */ .nav .dropdown.hover .caret { border-top: none; border-bottom: 4px dashed; } }
完整的代碼放在jsFiddle Bootstrap Mega Menu 。
參考資料:
Immediately-Invoked-Function-Expression vs. Self-Executing Anonymous Function
Closures explained with JavaScript
Mouse Over vs. Mouse Enter
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89381.html
摘要:寫在前面的模板非常多,上有著各種各樣的免費及付費模板。概述是一個基于設計的自適應多用途的管理后臺模板。下一篇之模板的學習之路源碼分析之部分 寫在前面 bootstrap 的模板非常多,Envato 上有著各種各樣的免費及付費模板。Metronic 是我最喜歡的模板之一(看一眼就喜歡上的那種),當前售價 $28 ,覺得贊的,不妨支持一下作者。覺得貴的,想必不用我說,你也會找到途徑。:b ...
摘要:工廠方法模式面向對象的設計強調抽象類高于實踐,盡可能的將代碼設計的一般化,而非特殊化也就是降低耦合,提升標準性。于是,前輩們便設計了特定類處理實例化的工廠方法。實現這個時候我們引入工廠方法模式,設置類創造者,類產品,。面向對象設計模式目錄 工廠方法模式 面向對象的設計強調抽象類高于實踐,盡可能的將代碼設計的一般化,而非特殊化——也就是降低耦合,提升標準性。于是,前輩們便設計了特定類處理...
閱讀 1691·2021-09-26 09:55
閱讀 3720·2021-09-22 15:31
閱讀 7379·2021-09-22 15:12
閱讀 2213·2021-09-22 10:02
閱讀 4631·2021-09-04 16:40
閱讀 1033·2019-08-30 15:55
閱讀 3024·2019-08-30 12:56
閱讀 1815·2019-08-30 12:44