mm-docs.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  6. <title>metisMenu - docs</title>
  7. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap/dist/css/bootstrap.min.css" />
  8. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css">
  9. <link rel="stylesheet" href="https://unpkg.com/metismenu/dist/metisMenu.min.css" />
  10. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.css" />
  11. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/animate.css" />
  12. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/noty/lib/noty.css">
  13. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/noty/lib/themes/relax.css">
  14. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/elektron/dist/elektron.min.css">
  15. <script src="https://cdn.jsdelivr.net/npm/jquery"></script>
  16. <script src="https://cdn.jsdelivr.net/npm/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
  17. <script src="https://unpkg.com/metismenu"></script>
  18. <script src="https://cdn.jsdelivr.net/npm/prismjs"></script>
  19. <script src="https://cdn.jsdelivr.net/npm/noty"></script>
  20. <style>
  21. @media (min-width: 992px) {
  22. .elk-app {
  23. height: 100%;
  24. }
  25. .elk-container,
  26. .elk-main,
  27. .elk-side {
  28. overflow-y: auto;
  29. }
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <!-- BEGIN .elk-app -->
  35. <div class="elk-app">
  36. <!-- BEGIN .elk-wrap -->
  37. <div class="elk-wrap">
  38. <!-- BEGIN .elk-header -->
  39. <header class="elk-header ">
  40. <div class="navbar navbar-expand-md navbar-dark bg-dark box-shadow">
  41. <div class="container d-flex justify-content-between">
  42. <a href="index.html" class="navbar-brand d-flex align-items-center">
  43. <strong>metisMenu</strong>
  44. </a>
  45. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault"
  46. aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
  47. <span class="navbar-toggler-icon"></span>
  48. </button>
  49. <div class="collapse navbar-collapse" id="navbarsExampleDefault">
  50. <ul class="navbar-nav ml-auto">
  51. <li class="nav-item dropdown">
  52. <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown"
  53. aria-haspopup="true" aria-expanded="false">Examples</a>
  54. <div class="dropdown-menu" aria-labelledby="dropdown01">
  55. <a class="dropdown-item" href="mm-vertical.html">Vertical Menu</a>
  56. <a class="dropdown-item" href="mm-horizontal.html">Horizontal Menu</a>
  57. <a class="dropdown-item" href="mm-folder.html">Folder View</a>
  58. <a class="dropdown-item" href="mm-vertical-hover.html">Hover Option For Desktop</a>
  59. <a class="dropdown-item" href="mm-animate.html">Animate</a>
  60. <a class="dropdown-item" href="mm-event.html">Event</a>
  61. <a class="dropdown-item" href="mm-event2.html">Event 2</a>
  62. <a class="dropdown-item" href="mm-dispose.html">Stop &amp; Start metisMenu</a>
  63. <a class="dropdown-item" href="mm-ajax.html">Ajax</a>
  64. <a class="dropdown-item" href="mm-faq.html">FAQ</a>
  65. <a class="dropdown-item" href="mm-bs-card.html">Bootstrap Card</a>
  66. <a class="dropdown-item active" href="mm-docs.html">Docs</a>
  67. </div>
  68. </li>
  69. <li class="nav-item dropdown">
  70. <a class="nav-link dropdown-toggle" href="#" id="dropdown02" data-toggle="dropdown"
  71. aria-haspopup="true" aria-expanded="false">Templates</a>
  72. <div class="dropdown-menu" aria-labelledby="dropdown02">
  73. <a class="dropdown-item" href="https://onokumus.com/chaldene" target="_blank">Chaldene Admin</a>
  74. <a class="dropdown-item" href="https://onokumus.com/elektron" target="_blank">Elektron Admin</a>
  75. <a class="dropdown-item" href="https://onokumus.com/twbuttons/" target="_blank">twbuttons</a>
  76. </div>
  77. </li>
  78. <li class="nav-item">
  79. <a class="nav-link" href="https://onokumus.com" target="_blank">onokumus</a>
  80. </li>
  81. </ul>
  82. </div>
  83. </div>
  84. </div>
  85. </header>
  86. <!-- END: .elk-header -->
  87. <!-- BEGIN .elk-container -->
  88. <div class="elk-container flex-column flex-md-row">
  89. <!-- BEGIN .elk-side -->
  90. <aside class="elk-side is-open bg-light border-right position-relative" id="elk-side">
  91. <!-- BEGIN .elk-side-content -->
  92. <div class="elk-side-content ">
  93. <!-- BEGIN .elk-side-nav -->
  94. <nav class="elk-side-nav">
  95. <ul class="nav flex-column" id="menu1">
  96. <li class="nav-item">
  97. <a class="nav-link text-dark has-arrow" href="#getting-started">Getting Started</a>
  98. <ul class="nav flex-column pl-1">
  99. <li class="nav-item">
  100. <a class="nav-link" href="#install">Install</a>
  101. <a class="nav-link" href="#download">Download</a>
  102. </li>
  103. </ul>
  104. </li>
  105. <li class="nav-item">
  106. <a class="nav-link text-dark has-arrow" href="#usage">Usage</a>
  107. <ul class="nav flex-column pl-1">
  108. <li class="nav-item">
  109. <a class="nav-link" href="#stopping-list-opening-on-certain-elements">Stopping list opening on
  110. certain
  111. elements</a>
  112. </li>
  113. </ul>
  114. </li>
  115. <li class="nav-item">
  116. <a class="nav-link text-dark has-arrow" href="#options">Options</a>
  117. <ul class="nav flex-column pl-1">
  118. <li class="nav-item"><a class="nav-link" href="#toggle">toggle</a></li>
  119. <li class="nav-item"><a class="nav-link" href="#dispose">dispose</a></li>
  120. <li class="nav-item"><a class="nav-link" href="#preventdefault">preventDefault</a></li>
  121. <li class="nav-item"><a class="nav-link" href="#triggerelement">triggerElement</a></li>
  122. <li class="nav-item"><a class="nav-link" href="#parenttrigger">parentTrigger</a></li>
  123. <li class="nav-item"><a class="nav-link" href="#submenu">subMenu</a></li>
  124. </ul>
  125. </li>
  126. <li class="nav-item"><a class="nav-link text-dark" href="#events">Events</a></li>
  127. <li class="nav-item"><a class="nav-link text-dark" href="#migrating-to-v3-from-v2">Migrating to v3 from
  128. v2</a></li>
  129. </ul>
  130. </nav>
  131. <!-- END: .elk-side-nav -->
  132. </div>
  133. <!-- END: .elk-side-content -->
  134. </aside>
  135. <!-- END: .elk-side -->
  136. <!-- BEGIN .elk-main -->
  137. <div class="elk-main">
  138. <!-- BEGIN .elk-main-content -->
  139. <div class="elk-main-content">
  140. <div class="container-fluid">
  141. <div class="row">
  142. <div class="col">
  143. <h2 id="getting-started">Getting started</h2>
  144. <h3 id="install">Install</h3>
  145. <p>Install with <a href="https://www.npmjs.com/">npm</a>:</p>
  146. <pre><code class="lang-sh">$ npm <span class="hljs-keyword">install</span> <span class="hljs-comment">--save metismenu</span>
  147. </code></pre>
  148. <p>Install with <a href="https://yarnpkg.com">yarn</a>:</p>
  149. <pre><code class="lang-sh">$ yarn <span class="hljs-keyword">add</span><span class="bash"> metismenu</span>
  150. </code></pre>
  151. <p>Install with <a href="https://getcomposer.org/">composer</a></p>
  152. <pre><code class="lang-sh">$ composer <span class="hljs-keyword">require</span> onokumus/<span class="hljs-symbol">metismenu:</span>dev-master
  153. </code></pre>
  154. <h3 id="download">Download</h3>
  155. <p><a href="https://github.com/onokumus/metisMenu/archive/master.zip">download</a></p>
  156. <h2 id="usage">Usage</h2>
  157. <ol>
  158. <li>
  159. <p>Include metismenu StyleSheet</p>
  160. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"stylesheet"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://unpkg.com/metismenu/dist/metisMenu.min.css"</span>&gt;</span>
  161. <span class="hljs-comment">&lt;!-- OR --&gt;</span>
  162. <span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"stylesheet"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/metismenu/dist/metisMenu.min.css"</span>&gt;</span>
  163. </code></pre>
  164. </li>
  165. <li>
  166. <p>Include jQuery</p>
  167. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://unpkg.com/jquery"</span>&gt;</span><span class="undefined"></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  168. <span class="hljs-comment">&lt;!-- OR --&gt;</span>
  169. <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/jquery"</span>&gt;</span><span class="undefined"></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  170. </code></pre>
  171. </li>
  172. <li>
  173. <p>Include metisMenu plugin&#39;s code</p>
  174. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://unpkg.com/metismenu"</span>&gt;</span><span class="undefined"></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  175. <span class="hljs-comment">&lt;!-- OR --&gt;</span>
  176. <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/metismenu"</span>&gt;</span><span class="undefined"></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  177. </code></pre>
  178. </li>
  179. <li>
  180. <p>Add id attribute to unordered list</p>
  181. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"metismenu"</span>&gt;</span>
  182. <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  183. </code></pre>
  184. </li>
  185. <li>
  186. <p>Make expand/collapse controls accessible</p>
  187. <blockquote>
  188. <p>Be sure to add <code>aria-expanded</code> to the element <code>a</code>. This attribute
  189. explicitly
  190. defines
  191. the current state of the collapsible element to screen readers and similar assistive
  192. technologies. If
  193. the
  194. collapsible element is closed by default, it should have a value of
  195. <code>aria-expanded=&quot;false&quot;</code>.
  196. If you&#39;ve set the collapsible element&#39;s parent <code>li</code> element to be open by
  197. default
  198. using
  199. the <code>mm-active</code> class, set <code>aria-expanded=&quot;true&quot;</code> on the
  200. control
  201. instead.
  202. The plugin will automatically toggle this attribute based on whether or not the collapsible
  203. element has
  204. been opened or closed.</p>
  205. </blockquote>
  206. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"metismenu"</span>&gt;</span>
  207. <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"mm-active"</span>&gt;</span>
  208. <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span> <span class="hljs-attr">aria-expanded</span>=<span class="hljs-string">"true"</span>&gt;</span>Menu 1<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
  209. <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
  210. ...
  211. <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  212. <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  213. <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>
  214. <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span> <span class="hljs-attr">aria-expanded</span>=<span class="hljs-string">"false"</span>&gt;</span>Menu 2<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
  215. <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
  216. ...
  217. <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  218. <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  219. ...
  220. <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  221. </code></pre>
  222. </li>
  223. <li>
  224. <p>Arrow Options</p>
  225. <blockquote>
  226. <p>add <code>has-arrow</code> class to <code>a</code> element</p>
  227. </blockquote>
  228. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"metismenu"</span>&gt;</span>
  229. <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"mm-active"</span>&gt;</span>
  230. <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"has-arrow"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span> <span class="hljs-attr">aria-expanded</span>=<span class="hljs-string">"true"</span>&gt;</span>Menu 1<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
  231. <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
  232. ...
  233. <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  234. <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  235. <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>
  236. <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"has-arrow"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span> <span class="hljs-attr">aria-expanded</span>=<span class="hljs-string">"false"</span>&gt;</span>Menu 2<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
  237. <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
  238. ...
  239. <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  240. <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  241. ...
  242. <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
  243. </code></pre>
  244. </li>
  245. <li>
  246. <p>Call the plugin:</p>
  247. <pre><code class="lang-javascript"> <span class="hljs-variable">$(</span><span class="hljs-string">"#metismenu"</span>).metisMenu();
  248. </code></pre>
  249. </li>
  250. </ol>
  251. <h3 id="stopping-list-opening-on-certain-elements">Stopping list opening on certain elements</h3>
  252. <p>Setting aria-disabled=&quot;true&quot; in the <code>&lt;a&gt;</code> element as shown will stop
  253. metisMenu
  254. opening the menu for that particular list. This can be changed dynamically and will be obeyed
  255. correctly:</p>
  256. <pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span> <span class="hljs-attr">aria-expanded</span>=<span class="hljs-string">"false"</span> <span class="hljs-attr">aria-disabled</span>=<span class="hljs-string">"true"</span>&gt;</span>List 1<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
  257. </code></pre>
  258. <h2 id="options">Options</h2>
  259. <h4 id="toggle">toggle</h4>
  260. <p>Type: <code>Boolean</code>
  261. Default: <code>true</code></p>
  262. <p>For auto collapse support.</p>
  263. <pre><code class="lang-javascript"> <span class="hljs-variable">$(</span><span class="hljs-string">"#metismenu"</span>).metisMenu({
  264. <span class="hljs-symbol">toggle:</span> <span class="hljs-keyword">false</span>
  265. });
  266. </code></pre>
  267. <h4 id="dispose">dispose</h4>
  268. <p>Type: <code>String</code>
  269. Default: <code>null</code></p>
  270. <p>For stop and destroy metisMenu.</p>
  271. <pre><code class="lang-javascript"> <span class="hljs-variable">$(</span><span class="hljs-string">"#metismenu"</span>).metisMenu(<span class="hljs-string">'dispose'</span>);
  272. </code></pre>
  273. <h4 id="preventdefault">preventDefault</h4>
  274. <p>Type: <code>Boolean</code>
  275. Default: <code>true</code></p>
  276. <blockquote>
  277. <p>Prevents or allows dropdowns&#39; onclick events after expanding/collapsing.</p>
  278. </blockquote>
  279. <pre><code class="lang-javascript"> <span class="hljs-variable">$(</span><span class="hljs-string">"#menu"</span>).metisMenu({
  280. <span class="hljs-symbol">preventDefault:</span> <span class="hljs-keyword">false</span>
  281. });
  282. </code></pre>
  283. <p><em>since from version 2.7.0</em></p>
  284. <h4 id="triggerelement">triggerElement</h4>
  285. <p>Type: <code>jQuery selector</code>
  286. Default: <code>a</code></p>
  287. <pre><code class="lang-javascript"> <span class="hljs-symbol">$</span>(<span class="hljs-string">"#metismenu"</span>).metisMenu({
  288. triggerElement: <span class="hljs-string">'.nav-link'</span> <span class="hljs-comment">// bootstrap 4</span>
  289. });
  290. </code></pre>
  291. <h4 id="parenttrigger">parentTrigger</h4>
  292. <p>Type: <code>jQuery selector</code>
  293. Default: <code>li</code></p>
  294. <pre><code class="lang-javascript"> <span class="hljs-symbol">$</span>(<span class="hljs-string">"#metismenu"</span>).metisMenu({
  295. parentTrigger: <span class="hljs-string">'.nav-item'</span> <span class="hljs-comment">// bootstrap 4</span>
  296. });
  297. </code></pre>
  298. <h4 id="submenu">subMenu</h4>
  299. <p>Type: <code>jQuery selector</code>
  300. Default: <code>ul</code></p>
  301. <pre><code class="lang-javascript"> <span class="hljs-symbol">$</span>(<span class="hljs-string">"#metismenu"</span>).metisMenu({
  302. subMenu: <span class="hljs-string">'.nav.flex-column'</span> <span class="hljs-comment">// bootstrap 4</span>
  303. });
  304. </code></pre>
  305. <h2 id="events">Events</h2>
  306. <table class="table">
  307. <thead>
  308. <tr>
  309. <th><strong>Event Type</strong></th>
  310. <th><strong>Description</strong></th>
  311. </tr>
  312. </thead>
  313. <tbody>
  314. <tr>
  315. <td>show.metisMenu</td>
  316. <td>This event fires immediately when the <code>_show</code> instance method is called.</td>
  317. </tr>
  318. <tr>
  319. <td>shown.metisMenu</td>
  320. <td>This event is fired when a collapse <code>ul</code> element has been made visible to the
  321. user (will
  322. wait
  323. for CSS transitions to complete).</td>
  324. </tr>
  325. <tr>
  326. <td>hide.metisMenu</td>
  327. <td>This event is fired immediately when the <code>_hide</code> method has been called.</td>
  328. </tr>
  329. <tr>
  330. <td>hidden.metisMenu</td>
  331. <td>This event is fired when a collapse <code>ul</code> element has been hidden from the user
  332. (will wait
  333. for
  334. CSS transitions to complete).</td>
  335. </tr>
  336. </tbody>
  337. </table>
  338. <h2 id="migrating-to-v3-from-v2">Migrating to v3 from v2</h2>
  339. <ul>
  340. <li>Update <code>metisMenu.js</code> &amp; <code>metisMenu.css</code> files</li>
  341. <li>Change <code>active</code> class to <code>mm-active</code></li>
  342. </ul>
  343. </div>
  344. </div>
  345. </div>
  346. </div>
  347. <!-- END: .elk-main-content -->
  348. </div>
  349. <!-- END: .elk-main -->
  350. </div>
  351. <!-- END: .elk-container -->
  352. </div>
  353. <!-- END: .elk-wrap -->
  354. </div>
  355. <!-- END: .elk-app -->
  356. <script>
  357. $(function () {
  358. $('#menu1').metisMenu();
  359. });
  360. </script>
  361. </body>
  362. </html>