Skip to content

Commit 5e161a1

Browse files
committed
feat: click sidebar menu add collapse and expand, close #294
1 parent 820abeb commit 5e161a1

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

Diff for: src/core/event/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export function eventMixin (proto) {
1313
export function initEvent (vm) {
1414
// Bind toggle button
1515
sidebar.btn('button.sidebar-toggle', vm.router)
16+
sidebar.collapse('.sidebar', vm.router)
1617
// Bind sticky effect
1718
if (vm.config.coverpage) {
1819
!isMobile && on('scroll', sidebar.sticky)

Diff for: src/core/event/sidebar.js

+14-5
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,26 @@ export function btn (el, router) {
1414
toggle()
1515
})
1616

17-
const sidebar = dom.getNode('.sidebar')
18-
1917
isMobile &&
2018
dom.on(
2119
dom.body,
2220
'click',
2321
_ => dom.body.classList.contains('close') && toggle()
2422
)
25-
dom.on(sidebar, 'click', _ =>
26-
setTimeout((_ => getAndActive(router, sidebar, true, true), 0))
27-
)
23+
}
24+
25+
export function collapse (el, router) {
26+
el = dom.getNode(el)
27+
28+
dom.on(el, 'click', ({ target }) => {
29+
if (
30+
target.nodeName === 'A' &&
31+
target.nextSibling &&
32+
target.nextSibling.classList.contains('app-sub-sidebar')
33+
) {
34+
dom.toggleClass(target.parentNode, 'collapse')
35+
}
36+
})
2837
}
2938

3039
export function sticky () {

Diff for: src/themes/basic/_layout.css

+6
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,12 @@ main {
270270
padding-bottom: 40px;
271271
}
272272

273+
li.collapse {
274+
.app-sub-sidebar {
275+
display: none;
276+
}
277+
}
278+
273279
ul {
274280
margin: 0;
275281
padding: 0;

0 commit comments

Comments
 (0)