diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index b122979..b0a4133 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -7,13 +7,13 @@
## 具体内容(根据“类型”选择其中一个,并删除其余 3 个)
-### 提交链接(不接受奇怪的网站)
+### 1. 提交链接(不接受奇怪的网站)
- 链接分类(例如 资源 - 软件 - 工具):
- 链接名称(例如 GitHub):
- 具体链接(例如 https://github.com/):
-### 修正链接
+### 2. 修正链接
- 链接所在的分类(例如 资源 - 软件 - 工具):
- 链接名称(例如 GitHub):
@@ -21,14 +21,16 @@
- 修正后的名称:
- 修正后的链接:
-### 发现 BUG
+### 3. 发现 BUG
+
+#### BUG 描述(例如 BUG 是在什么情况下出现的)
-**BUG 描述(例如 BUG 是在什么情况下出现的):**
在此填写
-**解决方法(可选):**
+#### 解决方法(可选)
+
在此填写
-### 建议
+### 4. 建议
此处填写具体的建议内容。
diff --git a/README.md b/README.md
index a380ab9..2e37363 100644
--- a/README.md
+++ b/README.md
@@ -13,18 +13,22 @@
### 提交链接
有以下两种方法:
-1. 到 [发布页面](https://blog.frost-zx.top/website/frost-navigation.html) 的评论区提交。(推荐使用此方法)
-2. 到 [Issues](https://github.com/Frost-ZX/frost-navigation/issues) 提交。
+
+1. 到 [Issues](https://github.com/Frost-ZX/frost-navigation/issues) 提交。
+2. 到 [发布页面](https://blog.frost-zx.top/website/frost-navigation.html) 的评论区提交。
+
### 修正链接
有以下两种方法:
-1. 到 [发布页面](https://blog.frost-zx.top/website/frost-navigation.html) 的评论区提交。(推荐使用此方法)
-2. 到 [Issues](https://github.com/Frost-ZX/frost-navigation/issues) 提交。
+
+1. 到 [Issues](https://github.com/Frost-ZX/frost-navigation/issues) 提交。
+2. 到 [发布页面](https://blog.frost-zx.top/website/frost-navigation.html) 的评论区提交。
### 离线使用
支持离线使用,[下载](https://github.com/Frost-ZX/frost-navigation/archive/master.zip) 后打开 `index.html` 即可,也可以将其加入浏览器的书签栏或在浏览器设置中将其设置为主页。
+
`注意:需要手动更新文件`
### 自定义
@@ -36,16 +40,5 @@
### 插件
-- [Slinky](https://github.com/alizahid/slinky)
+- [Slinky 4.2.1](https://github.com/alizahid/slinky)
- [jQuery 3.2.1](https://jquery.org/)
-
-## To Do
-
-- [x] 网站名称右侧显示网址
-- [x] 搜索框(搜索引擎)
-- [x] 搜索框(网址)
-- [x] 小工具
-- [ ] 加入链接图标
-- [ ] 美化
-- [ ] 完善链接
-- [ ] 优化代码
diff --git a/css/all.css b/assets/css/nav-all.css
similarity index 100%
rename from css/all.css
rename to assets/css/nav-all.css
diff --git a/css/index.css b/assets/css/nav-index.css
similarity index 70%
rename from css/index.css
rename to assets/css/nav-index.css
index 8df3c7c..a03667e 100644
--- a/css/index.css
+++ b/assets/css/nav-index.css
@@ -1,210 +1,69 @@
@charset "UTF-8";
-/*
- * 默认配色
- * primary #4cd964
- * accent #5ac8fa
- * accent #ff2d55
- * background #fff
- * text #222
- */
-
-* {
- border-radius: 0;
- box-sizing: border-box;
- font-weight: normal;
- outline: none;
- user-select: none;
-}
+/* 标签 */
body {
background-color: #999;
color: #000;
- cursor: default;
- display: flex;
- flex-direction: column;
- font: normal 14px/1 -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
- justify-content: center;
margin: 6em auto;
- max-width: calc(100% - 2em);
- min-height: calc(100vh - 8em);
- /* text-transform: lowercase; */
- width: 30em;
+ text-transform: none;
overflow-x: hidden;
scroll-behavior: smooth;
}
a {
color: #222;
- text-decoration: none;
- transition: 200ms;
}
-
a:hover {
color: #03A9F4;
}
-
a:active {
color: #00BCD4;
}
-code {
- font-family: 'Consolas', monospace;
-}
-
-h1, h2, h3 {
- font-weight: 500;
- text-align: center;
-}
-
h2 {
color: #FFF;
font-size: 1.6em;
- margin-bottom: 2em;
- position: relative;
text-shadow: 4px 4px 5px rgba(0, 0, 0, 0.2);
}
-
-h2::before {
- content: '';
- height: 1px;
- position: absolute;
- width: 100%;
-}
-
h3 {
color: #03A9F4;
- font-size: 1.25em;
- margin: 2em 0;
}
-img {
- border: none;
- max-width: 100%;
- vertical-align: top;
-}
+/* 覆盖 Slinky */
-p {
- margin: 2em 0;
- text-align: center;
-}
-
-pre {
- background: #f6f7f8;
- display: block;
- line-height: 1.4;
- padding: 1em;
- user-select: text;
- width: 100%;
-}
-
-table {
- background: #f6f7f8;
- border-collapse: collapse;
- border-spacing: 0;
- margin: 2em 0;
- width: 100%;
-}
-
-thead tr {
- border-bottom: 1px solid rgba(0, 0, 0, 0.025);
-}
-
-thead th {
- color: #ff2d55;
- font-weight: 500;
-}
-
-tbody tr:not(:first-child) {
- border-top: 1px solid rgba(0, 0, 0, 0.025);
-}
-
-tbody td {
- line-height: 1.4;
-}
-
-th, td {
- padding: 1em;
- text-align: left;
- vertical-align: top;
-}
-
-/* Layout */
-
-header, h1 {
- align-items: center;
- align-self: center;
+header,
+h1 {
color: #444;
- display: flex;
- flex-direction: column;
}
-
header h1::before {
- content: '';
- background: url('../favicon.ico') center no-repeat;
- background-size: 2em;
- height: 2em;
- margin-bottom: 1em;
- width: 2em;
+ background-image: url('../../favicon.ico');
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: contain;
}
-
header p {
color: #555;
- margin-top: 1em;
}
main {
- margin: 4em 0;
- opacity: 0;
- /* background: #FFF; */
+ /* opacity: 0; */
+ background-color: transparent;
transition: opacity 1s;
}
-main section:not(:first-child) {
- margin-top: 4em;
-}
-
footer {
color: #FFF;
font-size: 0.9em;
line-height: 1.5em;
- text-align: center;
}
-
footer a {
color: #FFF;
}
-
-footer img {
- height: 1.5em;
-}
-
footer p {
margin: 0;
}
-/* Components */
-
-.loading {
- align-items: center;
- display: flex;
- justify-content: center;
- margin: 2em;
- text-align: center;
-}
-
-.loading::before {
- animation: spinner 1s infinite linear;
- content: '';
- border: 2px solid transparent;
- border-top-color: #5ac8fa;
- border-right-color: #5ac8fa;
- border-radius: 1em;
- height: 1.5em;
- margin-right: 1em;
- width: 1.5em;
-}
-
/* 工具面板 */
.tool-panel {
@@ -255,15 +114,12 @@ footer p {
background-color: #F44336;
}
-.tool-panel-iframe {
-}
-
.tool-panel-iframe iframe {
height: calc(100vh - 32px);
width: 100vw;
}
-/* 链接的图标 */
+/* 链接图标 */
/*
main section li img {
diff --git a/css/tool.css b/assets/css/nav-tool.css
similarity index 100%
rename from css/tool.css
rename to assets/css/nav-tool.css
diff --git a/assets/css/slinky-styles.css b/assets/css/slinky-styles.css
new file mode 100644
index 0000000..64cd2cc
--- /dev/null
+++ b/assets/css/slinky-styles.css
@@ -0,0 +1,221 @@
+/*
+ * colors
+ * primary #4cd964
+ * accent #5ac8fa
+ * accent #ff2d55
+ * background #fff
+ * text #222
+ */
+
+/* reset */
+
+* {
+ border-radius: 0;
+ box-sizing: border-box;
+ font-weight: normal;
+ margin: 0;
+ outline: none;
+ padding: 0;
+ user-select: none;
+}
+
+::selection {
+ background: #cbf3b4;
+}
+
+/* global */
+
+body {
+ background: #fff;
+ color: #222;
+ cursor: default;
+ display: flex;
+ flex-direction: column;
+ font: normal 14px/1 -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,
+ Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
+ justify-content: center;
+ margin: 4em auto;
+ max-width: calc(100% - 2em);
+ min-height: calc(100vh - 8em);
+ text-transform: lowercase;
+ width: 30em;
+}
+
+a {
+ color: #4cd964;
+ text-decoration: none;
+ transition: 200ms;
+}
+
+a:hover {
+ color: #59e671;
+}
+
+a:active {
+ color: #3fcc57;
+}
+
+code {
+ font-family: 'Consolas', monospace;
+}
+
+h1,
+h2,
+h3 {
+ font-weight: 500;
+ text-align: center;
+}
+
+h2 {
+ color: #4cd964;
+ font-size: 1.5em;
+ margin-bottom: 2em;
+ position: relative;
+}
+
+h2::before {
+ content: '';
+ height: 1px;
+ position: absolute;
+ width: 100%;
+}
+
+h3 {
+ color: #5ac8fa;
+ font-size: 1.25em;
+ margin: 2em 0;
+}
+
+img {
+ border: none;
+ max-width: 100%;
+ vertical-align: top;
+}
+
+p {
+ margin: 2em 0;
+ text-align: center;
+}
+
+pre {
+ background: #f6f7f8;
+ display: block;
+ line-height: 1.4;
+ padding: 1em;
+ user-select: text;
+ width: 100%;
+}
+
+table {
+ background: #f6f7f8;
+ border-collapse: collapse;
+ border-spacing: 0;
+ margin: 2em 0;
+ width: 100%;
+}
+
+thead tr {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.025);
+}
+
+thead th {
+ color: #ff2d55;
+ font-weight: 500;
+}
+
+tbody tr:not(:first-child) {
+ border-top: 1px solid rgba(0, 0, 0, 0.025);
+}
+
+tbody td {
+ line-height: 1.4;
+}
+
+th,
+td {
+ padding: 1em;
+ text-align: left;
+ vertical-align: top;
+}
+
+/* layout */
+
+header,
+h1 {
+ align-items: center;
+ align-self: center;
+ display: flex;
+ flex-direction: column;
+}
+
+header h1::before {
+ content: '';
+ background: url('slinky.svg') center no-repeat;
+ background-size: 2em;
+ height: 2em;
+ margin-bottom: 1em;
+ width: 2em;
+}
+
+header p {
+ color: gray;
+ margin-top: 1em;
+}
+
+main {
+ background: #fff;
+ margin: 4em 0;
+}
+
+main section:not(:first-child) {
+ margin-top: 4em;
+}
+
+footer {
+ color: #999;
+ font-size: 0.875em;
+ line-height: 1.5;
+ text-align: center;
+}
+
+footer img {
+ height: 1.5em;
+}
+
+/* components */
+
+#menu {
+ width: 100%;
+}
+
+.loading {
+ align-items: center;
+ display: flex;
+ justify-content: center;
+ margin: 2em;
+ text-align: center;
+}
+
+.loading::before {
+ animation: spinner 1s infinite linear;
+ content: '';
+ border: 2px solid transparent;
+ border-top-color: #5ac8fa;
+ border-right-color: #5ac8fa;
+ border-radius: 1em;
+ height: 1.5em;
+ margin-right: 1em;
+ width: 1.5em;
+}
+
+/* animations */
+
+@keyframes spinner {
+ from {
+ transform: rotate(0deg);
+ }
+
+ to {
+ transform: rotate(360deg);
+ }
+}
diff --git a/assets/css/slinky.min.css b/assets/css/slinky.min.css
new file mode 100644
index 0000000..afb8e69
--- /dev/null
+++ b/assets/css/slinky.min.css
@@ -0,0 +1,69 @@
+.slinky-menu {
+ overflow: hidden;
+ transform: translateZ(0); }
+ .slinky-menu > ul {
+ left: 0;
+ position: relative;
+ transform: translateZ(0); }
+ .slinky-menu ul,
+ .slinky-menu li {
+ list-style: none;
+ margin: 0; }
+ .slinky-menu ul {
+ width: 100%; }
+ .slinky-menu a {
+ align-items: center;
+ display: flex; }
+ .slinky-menu a span {
+ flex: 1;
+ line-height: 1.4; }
+ .slinky-menu li ul {
+ display: none;
+ left: 100%;
+ position: absolute;
+ top: 0; }
+ .slinky-menu .header {
+ display: flex; }
+ .slinky-menu .header .title {
+ flex: 1;
+ line-height: 1.4;
+ margin: 0;
+ order: 1; }
+
+.slinky-theme-default {
+ background: #f6f7f8; }
+ .slinky-theme-default .title {
+ color: #333;
+ padding: 1em; }
+ .slinky-theme-default li {
+ line-height: 1; }
+ .slinky-theme-default a:not(.back) {
+ color: #333;
+ padding: 1em; }
+ .slinky-theme-default a:not(.back):hover {
+ background: rgba(90, 200, 250, 0.25); }
+ .slinky-theme-default a:not(.back):active {
+ background: rgba(90, 200, 250, 0.5); }
+ .slinky-theme-default .next::after,
+ .slinky-theme-default .back::before {
+ background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+ICAgIDxwYXRoIGQ9Ik0xMi4yMTkgMi4yODFMMTAuNzggMy43MiAxOC4wNjIgMTFIMnYyaDE2LjA2M2wtNy4yODIgNy4yODEgMS40MzggMS40MzggOS05IC42ODctLjcxOS0uNjg3LS43MTl6IiAvPjwvc3ZnPg==) center no-repeat;
+ background-size: 1em;
+ content: '';
+ height: 1em;
+ opacity: 0.25;
+ transition: 200ms;
+ width: 1em; }
+ .slinky-theme-default .next::after {
+ margin-left: 1em; }
+ .slinky-theme-default .back::before {
+ padding: 1em;
+ transform: scaleX(-1); }
+ .slinky-theme-default .next:hover::after,
+ .slinky-theme-default .back:hover::before {
+ opacity: 0.75; }
+ .slinky-theme-default .next:active::after,
+ .slinky-theme-default .back:active::before {
+ opacity: 1; }
+
+
+/*# sourceMappingURL=slinky.min.css.map*/
\ No newline at end of file
diff --git a/assets/css/slinky.min.css.map b/assets/css/slinky.min.css.map
new file mode 100644
index 0000000..bf861f3
--- /dev/null
+++ b/assets/css/slinky.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///./src/slinky.scss"],"names":[],"mappings":"AAAA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,cAAc;AACd;AACA,gBAAgB;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA,sBAAsB;AACtB;AACA;AACA,iBAAiB;AACjB;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB;AACjB;AACA,2CAA2C;AAC3C;AACA,0CAA0C;AAC1C;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,qBAAqB;AACrB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,eAAe","file":"slinky.min.css","sourcesContent":[".slinky-menu {\n overflow: hidden;\n transform: translateZ(0); }\n .slinky-menu > ul {\n left: 0;\n position: relative;\n transform: translateZ(0); }\n .slinky-menu ul,\n .slinky-menu li {\n list-style: none;\n margin: 0; }\n .slinky-menu ul {\n width: 100%; }\n .slinky-menu a {\n align-items: center;\n display: flex; }\n .slinky-menu a span {\n flex: 1;\n line-height: 1.4; }\n .slinky-menu li ul {\n display: none;\n left: 100%;\n position: absolute;\n top: 0; }\n .slinky-menu .header {\n display: flex; }\n .slinky-menu .header .title {\n flex: 1;\n line-height: 1.4;\n margin: 0;\n order: 1; }\n\n.slinky-theme-default {\n background: #f6f7f8; }\n .slinky-theme-default .title {\n color: #333;\n padding: 1em; }\n .slinky-theme-default li {\n line-height: 1; }\n .slinky-theme-default a:not(.back) {\n color: #333;\n padding: 1em; }\n .slinky-theme-default a:not(.back):hover {\n background: rgba(90, 200, 250, 0.25); }\n .slinky-theme-default a:not(.back):active {\n background: rgba(90, 200, 250, 0.5); }\n .slinky-theme-default .next::after,\n .slinky-theme-default .back::before {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+ICAgIDxwYXRoIGQ9Ik0xMi4yMTkgMi4yODFMMTAuNzggMy43MiAxOC4wNjIgMTFIMnYyaDE2LjA2M2wtNy4yODIgNy4yODEgMS40MzggMS40MzggOS05IC42ODctLjcxOS0uNjg3LS43MTl6IiAvPjwvc3ZnPg==) center no-repeat;\n background-size: 1em;\n content: '';\n height: 1em;\n opacity: 0.25;\n transition: 200ms;\n width: 1em; }\n .slinky-theme-default .next::after {\n margin-left: 1em; }\n .slinky-theme-default .back::before {\n padding: 1em;\n transform: scaleX(-1); }\n .slinky-theme-default .next:hover::after,\n .slinky-theme-default .back:hover::before {\n opacity: 0.75; }\n .slinky-theme-default .next:active::after,\n .slinky-theme-default .back:active::before {\n opacity: 1; }\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/files/heart.svg b/assets/files/heart.svg
similarity index 100%
rename from files/heart.svg
rename to assets/files/heart.svg
diff --git a/files/slinky.svg b/assets/files/slinky.svg
similarity index 100%
rename from files/slinky.svg
rename to assets/files/slinky.svg
diff --git a/img/Unsplash_V6TWE6h8gyg.jpg b/assets/img/Unsplash_V6TWE6h8gyg.jpg
similarity index 100%
rename from img/Unsplash_V6TWE6h8gyg.jpg
rename to assets/img/Unsplash_V6TWE6h8gyg.jpg
diff --git a/img/Unsplash_V6TWE6h8gyg_Blur.jpg b/assets/img/Unsplash_V6TWE6h8gyg_Blur.jpg
similarity index 100%
rename from img/Unsplash_V6TWE6h8gyg_Blur.jpg
rename to assets/img/Unsplash_V6TWE6h8gyg_Blur.jpg
diff --git a/img/Unsplash_V6TWE6h8gyg_Original.jpg b/assets/img/Unsplash_V6TWE6h8gyg_Original.jpg
similarity index 100%
rename from img/Unsplash_V6TWE6h8gyg_Original.jpg
rename to assets/img/Unsplash_V6TWE6h8gyg_Original.jpg
diff --git a/js/jquery-3.2.1.min.js b/assets/js/jquery-3.2.1.min.js
similarity index 100%
rename from js/jquery-3.2.1.min.js
rename to assets/js/jquery-3.2.1.min.js
diff --git a/js/index.js b/assets/js/nav-index.js
similarity index 100%
rename from js/index.js
rename to assets/js/nav-index.js
diff --git a/js/index.min.js b/assets/js/nav-index.min.js
similarity index 100%
rename from js/index.min.js
rename to assets/js/nav-index.min.js
diff --git a/js/tool.js b/assets/js/nav-tool.js
similarity index 100%
rename from js/tool.js
rename to assets/js/nav-tool.js
diff --git a/js/tool.min.js b/assets/js/nav-tool.min.js
similarity index 100%
rename from js/tool.min.js
rename to assets/js/nav-tool.min.js
diff --git a/assets/js/slinky.min.js b/assets/js/slinky.min.js
new file mode 100644
index 0000000..6855c92
--- /dev/null
+++ b/assets/js/slinky.min.js
@@ -0,0 +1,8 @@
+!function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){n(1),e.exports=n(2)},function(e,t){function n(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){for(var n=0;n
+ * @license MIT
+ */var a=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.settings=function(e){for(var t=1;t a",t).wrapInner("");var i=jQuery("").addClass("header");jQuery("li > ul",t).prepend(i);var r=jQuery("").prop("href","#").addClass("back");jQuery(".header",t).prepend(r),n.title&&jQuery("li > ul",t).each(function(e,t){var n=jQuery(t).parent().find("a").first().text();if(n){var i=jQuery("").addClass("title").text(n);jQuery("> .header",t).append(i)}}),this._addListeners(),this._jumpToInitial()}},{key:"_addListeners",value:function(){var e=this,t=this.menu,n=this.settings;jQuery("a",t).on("click",function(i){if(e._clicked+n.speed>Date.now())return!1;e._clicked=Date.now();var r=jQuery(i.currentTarget);(0===r.attr("href").indexOf("#")||r.hasClass("next")||r.hasClass("back"))&&i.preventDefault(),r.hasClass("next")?(t.find(".active").removeClass("active"),r.next().show().addClass("active"),e._move(1),n.resize&&e._resize(r.next())):r.hasClass("back")&&(e._move(-1,function(){t.find(".active").removeClass("active"),r.parent().parent().hide().parentsUntil(t,"ul").first().addClass("active")}),n.resize&&e._resize(r.parent().parent().parentsUntil(t,"ul")))})}},{key:"_jumpToInitial",value:function(){var e=this.menu,t=this.settings,n=e.find(".active");n.length>0&&(n.removeClass("active"),this.jump(n,!1)),setTimeout(function(){return e.height(e.outerHeight())},t.speed)}},{key:"_move",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};if(0!==e){var n=this.settings,i=this.base,r=Math.round(parseInt(i.get(0).style.left))||0;i.css("left","".concat(r-100*e,"%")),"function"==typeof t&&setTimeout(t,n.speed)}}},{key:"_resize",value:function(e){this.menu.height(e.outerHeight())}},{key:"_transition",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:300,t=this.menu,n=this.base;t.css("transition-duration","".concat(e,"ms")),n.css("transition-duration","".concat(e,"ms"))}},{key:"jump",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e){var n=this.menu,i=this.settings,r=jQuery(e),s=n.find(".active"),a=0;s.length>0&&(a=s.parentsUntil(n,"ul").length),n.find("ul").removeClass("active").hide();var o=r.parentsUntil(n,"ul");o.show(),r.show().addClass("active"),t||this._transition(0),this._move(o.length-a),i.resize&&this._resize(r),t||this._transition(i.speed)}}},{key:"home",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.base,n=this.menu,i=this.settings;e||this._transition(0);var r=n.find(".active"),s=r.parentsUntil(n,"ul");this._move(-s.length,function(){r.removeClass("active").hide(),s.not(t).hide()}),i.resize&&this._resize(t),!1===e&&this._transition(i.speed)}},{key:"destroy",value:function(){var e=this,t=this.base,n=this.menu;jQuery(".header",n).remove(),jQuery("a",n).removeClass("next").off("click"),n.css({height:"","transition-duration":""}),t.css({left:"","transition-duration":""}),jQuery("li > a > span",n).contents().unwrap(),n.find(".active").removeClass("active"),n.attr("class").split(" ").forEach(function(e){0===e.indexOf("slinky")&&n.removeClass(e)});["settings","menu","base"].forEach(function(t){return delete e[t]})}}]),e}();jQuery.fn.slinky=function(e){return new a(this,e)}},function(e,t,n){}]);
+//# sourceMappingURL=slinky.min.js.map
\ No newline at end of file
diff --git a/assets/js/slinky.min.js.map b/assets/js/slinky.min.js.map
new file mode 100644
index 0000000..83a7ae3
--- /dev/null
+++ b/assets/js/slinky.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/slinky.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","Slinky","element","options","arguments","length","undefined","_classCallCheck","this","settings","_objectSpread","_init","resize","speed","theme","title","menu","jQuery","base","children","first","addClass","_transition","prev","wrapInner","header","prepend","back","prop","each","index","label","parent","find","text","append","_addListeners","_jumpToInitial","_this","on","e","_clicked","Date","now","link","currentTarget","attr","indexOf","hasClass","preventDefault","removeClass","next","show","_move","_resize","hide","parentsUntil","active","jump","setTimeout","height","outerHeight","depth","callback","left","Math","round","parseInt","style","css","concat","content","target","animate","to","count","menus","parents","not","_this2","remove","off","transition-duration","contents","unwrap","split","forEach","field","fn","slinky"],"mappings":"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","file":"slinky.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/*\n * Slinky\n * Rather sweet menus\n * @author Ali Zahid \n * @license MIT\n */\n\nclass Slinky {\n // default options\n get options() {\n return {\n resize: true,\n speed: 300,\n theme: 'slinky-theme-default',\n title: false\n }\n }\n\n constructor(element, options = {}) {\n // save settings\n this.settings = {\n ...this.options,\n ...options\n }\n\n // let's go!\n this._init(element)\n }\n\n // setup the DOM just for us\n _init(element) {\n // the two elements of water and moisture\n this.menu = jQuery(element)\n this.base = this.menu.children().first()\n\n const { menu, settings } = this\n\n // set theme\n menu.addClass('slinky-menu').addClass(settings.theme)\n\n // set transition speed\n this._transition(settings.speed)\n\n // add arrows to links with children\n jQuery('a + ul', menu)\n .prev()\n .addClass('next')\n\n // wrap link text with \n // mostly for styling\n jQuery('li > a', menu).wrapInner('')\n\n // create header item\n const header = jQuery('').addClass('header')\n\n // prepend it to the list\n jQuery('li > ul', menu).prepend(header)\n\n // create back buttons\n const back = jQuery('')\n .prop('href', '#')\n .addClass('back')\n\n // prepend them to the headers\n jQuery('.header', menu).prepend(back)\n\n // do we need to add titles?\n if (settings.title) {\n // loop through each child list\n jQuery('li > ul', menu).each((index, element) => {\n // get the label from the parent link\n const label = jQuery(element)\n .parent()\n .find('a')\n .first()\n .text()\n\n // if it's not empty, create the title\n if (label) {\n const title = jQuery('')\n .addClass('title')\n .text(label)\n\n // append it to the immediate header\n jQuery('> .header', element).append(title)\n }\n })\n }\n\n // add click listeners\n this._addListeners()\n\n // jump to initial active\n this._jumpToInitial()\n }\n\n // click listeners\n _addListeners() {\n const { menu, settings } = this\n\n jQuery('a', menu).on('click', e => {\n // prevent broken/half transitions\n if (this._clicked + settings.speed > Date.now()) {\n return false\n }\n\n // cache click time to check on next click\n this._clicked = Date.now()\n\n // get the link\n const link = jQuery(e.currentTarget)\n\n // prevent default if it's a hash\n // or a Slinky button\n if (\n link.attr('href').indexOf('#') === 0 ||\n link.hasClass('next') ||\n link.hasClass('back')\n ) {\n e.preventDefault()\n }\n\n // time to move\n if (link.hasClass('next')) {\n // one step forward\n\n // remove the current active\n menu.find('.active').removeClass('active')\n\n // set the new active\n link\n .next()\n .show()\n .addClass('active')\n\n // make the chess move\n this._move(1)\n\n // resize the menu if need be\n if (settings.resize) {\n this._resize(link.next())\n }\n } else if (link.hasClass('back')) {\n // and two steps back\n // just one step back, actually\n\n // make the move\n this._move(-1, () => {\n // remove the current active\n menu.find('.active').removeClass('active')\n\n // set the new active\n link\n .parent()\n .parent()\n .hide()\n .parentsUntil(menu, 'ul')\n .first()\n .addClass('active')\n })\n\n // resize the menu if need be\n if (settings.resize) {\n this._resize(\n link\n .parent()\n .parent()\n .parentsUntil(menu, 'ul')\n )\n }\n }\n })\n }\n\n // jump to initial active on init\n _jumpToInitial() {\n const { menu, settings } = this\n\n // get initial active\n const active = menu.find('.active')\n\n if (active.length > 0) {\n // remove initial active\n active.removeClass('active')\n\n // jump without animation\n this.jump(active, false)\n }\n\n // set initial height on the menu\n // to fix the first transition resize bug\n setTimeout(() => menu.height(menu.outerHeight()), settings.speed)\n }\n\n // slide the menu\n _move(depth = 0, callback = () => {}) {\n // don't bother packing if we're not going anywhere\n if (depth === 0) {\n return\n }\n\n const { settings, base } = this\n\n // get current position from the left\n const left = Math.round(parseInt(base.get(0).style.left)) || 0\n\n // set the new position from the left\n base.css('left', `${left - depth * 100}%`)\n\n // callback after the animation\n if (typeof callback === 'function') {\n setTimeout(callback, settings.speed)\n }\n }\n\n // resize the menu\n // to match content height\n _resize(content) {\n const { menu } = this\n\n menu.height(content.outerHeight())\n }\n\n // set the transition speed\n _transition(speed = 300) {\n const { menu, base } = this\n\n menu.css('transition-duration', `${speed}ms`)\n base.css('transition-duration', `${speed}ms`)\n }\n\n // jump to an element\n jump(target, animate = true) {\n if (!target) {\n return\n }\n\n const { menu, settings } = this\n\n const to = jQuery(target)\n\n // get all current active\n const active = menu.find('.active')\n\n // how many moves must we jump?\n let count = 0\n\n // this many\n // until we reach the parent list\n if (active.length > 0) {\n count = active.parentsUntil(menu, 'ul').length\n }\n\n // remove current active\n // hide all lists\n menu\n .find('ul')\n .removeClass('active')\n .hide()\n\n // get parent list\n const menus = to.parentsUntil(menu, 'ul')\n\n // show parent list\n menus.show()\n\n // show target\n to.show().addClass('active')\n\n // set transition speed to 0 if no animation\n if (!animate) {\n this._transition(0)\n }\n\n // make the checkers move\n this._move(menus.length - count)\n\n // resize menu if need be\n if (settings.resize) {\n this._resize(to)\n }\n\n // set transition speed to default after transition\n if (!animate) {\n this._transition(settings.speed)\n }\n }\n\n // go big or go home\n // just go home\n home(animate = true) {\n const { base, menu, settings } = this\n\n // set transition speed to 0 if no animation\n if (!animate) {\n this._transition(0)\n }\n\n // get current active\n const active = menu.find('.active')\n\n // get all parent lists\n const parents = active.parentsUntil(menu, 'ul')\n\n // make the move\n this._move(-parents.length, () => {\n // remove the current active\n active.removeClass('active').hide()\n\n // hide all parents except base\n parents.not(base).hide()\n })\n\n // resize if need be\n if (settings.resize) {\n this._resize(base)\n }\n\n // set transition speed back to default\n if (animate === false) {\n this._transition(settings.speed)\n }\n }\n\n // crush, kill, destroy\n destroy() {\n const { base, menu } = this\n\n // remove all headers\n jQuery('.header', menu).remove()\n\n // remove Slinky links\n // and click listeners\n jQuery('a', menu)\n .removeClass('next')\n .off('click')\n\n // remove inline styles\n menu.css({\n height: '',\n 'transition-duration': ''\n })\n\n base.css({\n left: '',\n 'transition-duration': ''\n })\n\n // remove Slinky HTML\n jQuery('li > a > span', menu)\n .contents()\n .unwrap()\n\n // remove any current active\n menu.find('.active').removeClass('active')\n\n // remove any Slinky style classes\n const styles = menu.attr('class').split(' ')\n\n styles.forEach(style => {\n if (style.indexOf('slinky') === 0) {\n menu.removeClass(style)\n }\n })\n\n // reset fields\n const fields = ['settings', 'menu', 'base']\n\n fields.forEach(field => delete this[field])\n }\n}\n\n// jQuery plugin\n;($ => {\n $.fn.slinky = function(options) {\n const menu = new Slinky(this, options)\n\n return menu\n }\n})(jQuery)\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/css/slinky.css b/css/slinky.css
deleted file mode 100644
index 377697f..0000000
--- a/css/slinky.css
+++ /dev/null
@@ -1,118 +0,0 @@
-@charset "UTF-8";
-
-.slinky-menu {
- overflow: hidden;
- transform: translateZ(0);
-}
-
-.slinky-menu>ul {
- left: 0;
- position: relative;
- transform: translateZ(0);
-}
-
-.slinky-menu ul,
-.slinky-menu li {
- list-style: none;
- margin: 0;
-}
-
-.slinky-menu ul {
- width: 100%;
-}
-
-.slinky-menu a {
- align-items: center;
- display: flex;
-}
-
-.slinky-menu a span {
- flex: 1;
- line-height: 1.4;
-}
-
-.slinky-menu li ul {
- display: none;
- left: 100%;
- position: absolute;
- top: 0;
-}
-
-.slinky-menu .header {
- display: flex;
-}
-
-.slinky-menu .header .title {
- flex: 1;
- line-height: 1.4;
- margin: 0;
- order: 1;
-}
-
-.slinky-theme-default {
- width: 100%;
- background: #fff;
- border-radius: 5px;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
-}
-
-.slinky-theme-default .title {
- color: #333;
- padding: 1em;
-}
-
-.slinky-theme-default li {
- line-height: 1;
-}
-
-.slinky-theme-default a:not(.back) {
- color: #333;
- padding: 1em;
-}
-
-.slinky-theme-default a:not(.back):hover {
- background: rgba(90, 200, 250, 0.25);
-}
-
-.slinky-theme-default a:not(.back):active {
- background: rgba(90, 200, 250, 0.5);
-}
-
-/* 显示链接 */
-.slinky-theme-default a:not([href="#"]):not([href^="javascript"])::after {
- content: attr(href);
- max-width: 50%;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.slinky-theme-default .next::after,
-.slinky-theme-default .back::before {
- background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+ICAgIDxwYXRoIGQ9Ik0xMi4yMTkgMi4yODFMMTAuNzggMy43MiAxOC4wNjIgMTFIMnYyaDE2LjA2M2wtNy4yODIgNy4yODEgMS40MzggMS40MzggOS05IC42ODctLjcxOS0uNjg3LS43MTl6IiAvPjwvc3ZnPg==) center no-repeat;
- background-size: 1em;
- content: '';
- height: 1em;
- opacity: 0.25;
- transition: 200ms;
- width: 1em;
-}
-
-.slinky-theme-default .next::after {
- margin-left: 1em;
-}
-
-.slinky-theme-default .back::before {
- padding: 1em;
- transform: scaleX(-1);
-}
-
-.slinky-theme-default .next:hover::after,
-.slinky-theme-default .back:hover::before {
- opacity: 0.75;
-}
-
-.slinky-theme-default .next:active::after,
-.slinky-theme-default .back:active::before {
- opacity: 1;
-}
diff --git a/index.html b/index.html
index 27a9b50..5ba11e3 100644
--- a/index.html
+++ b/index.html
@@ -8,9 +8,11 @@
Frost 网址导航
-
-
-
+
+
+
+
+
Template: Slinky
- | Made with
+ | Made with
by Ali Zahid
@@ -1311,8 +1313,8 @@
-
-
-
+
+
+