Skip to content

Commit 6acc5b7

Browse files
committed
publish style fix css
1 parent 98db56a commit 6acc5b7

File tree

9 files changed

+85
-24
lines changed

9 files changed

+85
-24
lines changed

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,12 @@ Then insert script into document just like the [official plugins](https://docsif
5959
## Style demo
6060

6161
- arrow style
62-
63-
Reference: [sidebar.css](./src/sidebar.css)
62+
```html
63+
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify-sidebar-collapse/dist/sidebar.min.css" />
64+
```
6465

6566
- folder style
66-
67-
Reference: [sidebar-folder.css](./src/sidebar-folder.css)
68-
67+
```html
68+
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify-sidebar-collapse/dist/sidebar-folder.min.css" />
69+
```
6970
![](assets/style-folder.jpg)

dist/docsify-sidebar-collapse.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
}
3232
}
3333

34-
var css = ".sidebar-nav > ul > li ul {\n display: none;\n}\n\n.app-sub-sidebar {\n display: none;\n}\n\n.app-sub-sidebar.open {\n display: block;\n}\n\n.sidebar-nav .open > ul:not(.app-sub-sidebar),\n.sidebar-nav .active:not(.hold) > ul {\n display: block;\n}\n\n.active + ul.app-sub-sidebar {\n display: block;\n}\n";
34+
var css = ".sidebar-nav > ul > li ul {\n display: none;\n}\n\n.app-sub-sidebar {\n display: none;\n}\n\n.app-sub-sidebar.open {\n display: block;\n}\n\n.sidebar-nav .open > ul:not(.app-sub-sidebar),\n.sidebar-nav .active:not(.collapse) > ul {\n display: block;\n}\n\n.active + ul.app-sub-sidebar {\n display: block;\n}\n";
3535
styleInject(css);
3636

3737
var lastTop = 0; // 侧边栏滚动状态
@@ -116,32 +116,46 @@
116116
} // fix #11 空行问题
117117

118118

119-
if (e.target.parentNode && e.target.parentNode.tagName === 'LI') {
119+
if (e.target.tagName === 'P' && e.target.parentNode && e.target.parentNode.tagName === 'LI') {
120120
e.target.parentNode.classList.toggle('open');
121121
}
122122

123123
if (e.target.tagName === 'A') {
124-
var elp = e.target.parentElement;
124+
var elp = findTagParent(e.target, 'LI', 2);
125125

126-
if (elp.tagName === 'LI') {
126+
if (elp) {
127127
if (elp.classList.contains('open')) {
128128
requestAnimationFrame(function () {
129129
elp.classList.add('collapse');
130130
elp.classList.remove('open');
131-
elp.classList.add('hold');
132131
});
133132
} else {
134133
requestAnimationFrame(function () {
135-
if (elp.classList.contains('hold')) {
134+
if (elp.classList.contains('collapse')) {
136135
elp.classList.remove('collapse');
137-
elp.classList.add('open');
138-
elp.classList.remove('hold');
139136
}
137+
138+
elp.classList.add('open');
140139
});
141140
}
142141
}
143142
}
144143
}, true);
145144
});
146145

146+
function findTagParent(curNode, tagName, level) {
147+
var l = 0;
148+
149+
while (curNode) {
150+
l++;
151+
if (l > level) return;
152+
153+
if (curNode.parentNode.tagName === tagName) {
154+
return curNode.parentNode;
155+
}
156+
157+
curNode = curNode.parentNode;
158+
}
159+
}
160+
147161
})));

dist/docsify-sidebar-collapse.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/sidebar-folder.min.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/sidebar.min.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 29 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "docsify-sidebar-collapse",
3-
"version": "1.1.8",
3+
"version": "1.2.0",
44
"description": "sidebar-collapse plugin for docsify",
55
"main": "src",
66
"scripts": {
@@ -9,6 +9,7 @@
99
"build": "run-s build:*",
1010
"build:rollup": "rollup -c",
1111
"build:minify": "uglifyjs --compress --mangle --output ./dist/docsify-sidebar-collapse.min.js -- ./dist/docsify-sidebar-collapse.js",
12+
"build:css": "cleancss -o dist/sidebar.min.css src/sidebar.css &&cleancss -o dist/sidebar-folder.min.css src/sidebar-folder.css",
1213
"pb": "npm run build && npm publish"
1314
},
1415
"repository": {
@@ -33,6 +34,7 @@
3334
"devDependencies": {
3435
"@babel/core": "^7.1.6",
3536
"@babel/preset-env": "^7.1.6",
37+
"clean-css-cli": "^4.3.0",
3638
"npm-run-all": "^4.1.5",
3739
"rimraf": "^2.6.2",
3840
"rollup": "^0.67.3",

src/index.js

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,26 +95,28 @@ document.addEventListener('DOMContentLoaded', () => {
9595
e.target.classList.toggle('open')
9696
}
9797
// fix #11 空行问题
98-
if (e.target.parentNode && e.target.parentNode.tagName === 'LI') {
98+
if (
99+
e.target.tagName === 'P' &&
100+
e.target.parentNode &&
101+
e.target.parentNode.tagName === 'LI'
102+
) {
99103
e.target.parentNode.classList.toggle('open')
100104
}
101105

102106
if (e.target.tagName === 'A') {
103-
const elp = e.target.parentElement
104-
if (elp.tagName === 'LI') {
107+
const elp = findTagParent(e.target, 'LI', 2)
108+
if (elp) {
105109
if (elp.classList.contains('open')) {
106110
requestAnimationFrame(() => {
107111
elp.classList.add('collapse')
108112
elp.classList.remove('open')
109-
elp.classList.add('hold')
110113
})
111114
} else {
112115
requestAnimationFrame(() => {
113-
if (elp.classList.contains('hold')) {
116+
if (elp.classList.contains('collapse')) {
114117
elp.classList.remove('collapse')
115-
elp.classList.add('open')
116-
elp.classList.remove('hold')
117118
}
119+
elp.classList.add('open')
118120
})
119121
}
120122
}
@@ -123,3 +125,15 @@ document.addEventListener('DOMContentLoaded', () => {
123125
true
124126
)
125127
})
128+
129+
function findTagParent(curNode, tagName, level) {
130+
let l = 0
131+
while (curNode) {
132+
l++
133+
if (l > level) return
134+
if (curNode.parentNode.tagName === tagName) {
135+
return curNode.parentNode
136+
}
137+
curNode = curNode.parentNode
138+
}
139+
}

src/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
}
1212

1313
.sidebar-nav .open > ul:not(.app-sub-sidebar),
14-
.sidebar-nav .active:not(.hold) > ul {
14+
.sidebar-nav .active:not(.collapse) > ul {
1515
display: block;
1616
}
1717

0 commit comments

Comments
 (0)