├── .DS_Store ├── LICENSE ├── README.md ├── css ├── animation.css ├── lantern.css ├── loading.css ├── mobile.css └── style.css ├── favicon.ico ├── font ├── MiSans-Regular.subset.ttf ├── MiSans-Regular.subset.woff2 ├── MiSans-Regular.woff2 ├── Pacifico-Regular.ttf └── UnidreamLED.ttf ├── img ├── .DS_Store ├── background1.webp ├── background10.webp ├── background2.webp ├── background3.webp ├── background4.webp ├── background5.webp ├── background6.webp ├── background7.webp ├── background8.webp ├── background9.webp └── icon │ ├── 128.png │ ├── 144.png │ ├── 180.png │ ├── 192.png │ ├── 32.png │ ├── 48.png │ ├── 512.png │ ├── 72.png │ ├── 96.png │ ├── apple-touch-icon.png │ ├── candle.png │ ├── favicon.ico │ ├── logo.png │ ├── music.png │ ├── pause.png │ ├── play.png │ └── warn.png ├── index.html ├── js ├── 51LA.js ├── js.cookie.js ├── lantern.js ├── main.js ├── music.js ├── set.js └── time.js ├── manifest.json ├── old ├── .DS_Store ├── css │ ├── font.css │ ├── iconfont.css │ └── style.css ├── favicon.ico ├── images │ ├── apple-touch-icon.png │ └── logo.png ├── index.html └── js │ ├── fetch.min.js │ ├── jquery.min.js │ └── main.js ├── setting.json ├── sw.js ├── upgrade-your-browser ├── css │ └── support.style.min.css ├── end-of-ie-support │ ├── css │ │ └── support.style.min.css │ ├── index.html │ └── js │ │ └── er3eport.min.js ├── favicon.ico ├── images │ ├── chrome.png │ ├── edge.png │ ├── firefox.png │ ├── qqbrowser.png │ ├── safari.png │ └── se360.png ├── index.html └── js │ ├── er3eport.min.js │ └── main.min.js ├── vercel.json └── z3.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/.DS_Store -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 imsyy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 棱镜门 网站引导页 2 | 3 | 4 | 一款非常好看的个人网站引导页 5 | 6 | ## 搭建教程 7 | 8 | [点击我!!!!](https://www.suiu.cc/archives/homeweb) 9 | 10 | ### 功能 11 | 12 | - [x] 载入动画 13 | - [x] 站点简介 14 | - [x] Hitokoto 一言 15 | - [x] 日期及时间 16 | - [x] 实时天气 17 | - [x] 时光进度条 18 | - [x] 音乐播放器 19 | - [x] 移动端适配 20 | 21 | * [ ] 去除 jQuery 依赖 22 | * [ ] VUE 重构 23 | 24 | ### 天气 25 | 26 | 由于原天气 API 不稳定,已更换天气 API,现需要前往以下网站获取 key 27 | 28 | - 前往 [ROLL](https://www.mxnzp.com/doc/list) 获取 app_id 和 app_secret,用于获取城市信息 29 | - 前往 [和风天气](https://dev.qweather.com/) 获取 key,用于获取天气信息 30 | 31 | 也可自行更换其他方式 32 | 33 | 85 | 86 | ### 音乐 87 | 88 | >本项目采用了基于 `MetingJS` 的 `Aplayer` 音乐播放器,可实现快速自定义歌单 89 | >*仅支持 **中国大陆地区**,其他区域请将 [以下内容](https://file.imsyy.top/js/music/music-other.js) 替换 `music.js` 以实现音乐播放器的正常使用 90 | 91 | 更改 `music.js` 的参数即可实现自定义歌单列表 92 | 93 | ```js 94 | let server = "netease"; //netease: 网易云音乐; tencent: QQ音乐; kugou: 酷狗音乐; xiami: 虾米; kuwo: 酷我 95 | let type = "playlist"; //song: 单曲; playlist: 歌单; album: 唱片 96 | let id = ""; //封面 ID / 单曲 ID / 歌单 ID 97 | ``` 98 | 99 | > 推荐我的网易云音乐,一起听歌吧~ 100 | > https://y.music.163.com/m/user?id=133241206&dlt=0846&app_version=8.8.70 101 | 102 | ### 字体 103 | >由于本项目引入了中文字体,需要压缩中文字体以提高网页加载速度( 也可以取消使用中文字体 ) 104 | 105 | #### 中文字体去除繁体 106 | 107 | - 安装 `Python 3.7` 和 `pip` 108 | - 运行 `pip install fonttools` 109 | - 下载 [sc_unicode.txt](https://gist.githubusercontent.com/imaegoo/d64e5088b723c2e02c40985f55ff12db/raw/5ebd2ce49418c73459a9dfe050483409306a6c1d/sc_unicode.txt) 110 | - 运行 `pyftsubset 字体名称.ttf --unicodes-file=sc_unicode.txt` 111 | 112 | #### 字体进一步压缩 113 | 114 | - 编译安装 `Google woff2` 115 | 116 | ```bash 117 | sudo apt-get install -y git g++ make 118 | git clone --recursive https://github.com/google/woff2.git 119 | cd woff2 120 | make clean all 121 | ``` 122 | 123 | - 再压缩字体 124 | 125 | ``` 126 | ./woff2_compress ./字体名称.ttf 127 | ``` 128 | 129 | - 最终可对原字体进行缓加载,**先行加载压缩后的字体** 130 | 131 | >详细信息可前往 [虹墨空间站](https://www.imaegoo.com/2020/chinese-font-compress/) 查看原文 132 | 133 | ### 插件 134 | 135 | * [Bootstrap](https://getbootstrap.com/) 136 | * [iziToast](https://izitoast.marcelodolza.com/) 137 | * [Font Awesome](https://fontawesome.com/) 138 | * [jQuery](https://jquery.com/) 139 | * [Aplayer](https://aplayer.js.org/) 140 | 141 | ### API 142 | 143 | * [MetingAPI By 武恩赐](https://api.wuenci.com/meting/api/) 144 | * [小歪 API](https://api.ixiaowai.cn/) 145 | * [和风天气](https://dev.qweather.com/) 146 | * [ROLL](https://www.mxnzp.com/doc/list) 147 | * [Hitokoto 一言](https://hitokoto.cn/) 148 | 149 |    150 | 151 | 152 | 153 | ## 🌟 Stargazers over time 154 | 155 | [![Stargazers over time](https://starchart.cc/poshoi/homeweb.svg)](https://starchart.cc/poshoi/homeweb) 156 | 157 | 158 | fork:https://github.com/imsyy/home 159 | -------------------------------------------------------------------------------- /css/animation.css: -------------------------------------------------------------------------------- 1 | /*模糊渐入动画*/ 2 | @keyframes fade-in { 3 | 0% { 4 | opacity: 0; 5 | backdrop-filter: blur(0px); 6 | } 7 | 8 | 100% { 9 | opacity: 1; 10 | backdrop-filter: blur(10px); 11 | } 12 | } 13 | 14 | @-webkit-keyframes fade-in { 15 | 0% { 16 | opacity: 0; 17 | backdrop-filter: blur(0px); 18 | } 19 | 20 | 100% { 21 | opacity: 1; 22 | backdrop-filter: blur(10px); 23 | } 24 | } 25 | 26 | @-moz-keyframes fade-in { 27 | 0% { 28 | opacity: 0; 29 | backdrop-filter: blur(0px); 30 | } 31 | 32 | 100% { 33 | opacity: 1; 34 | backdrop-filter: blur(10px); 35 | } 36 | } 37 | 38 | @-o-keyframes fade-in { 39 | 0% { 40 | opacity: 0; 41 | backdrop-filter: blur(0px); 42 | } 43 | 44 | 100% { 45 | opacity: 1; 46 | backdrop-filter: blur(10px); 47 | } 48 | } 49 | 50 | /*渐入动画*/ 51 | @keyframes fade { 52 | 0% { 53 | opacity: 0; 54 | } 55 | 56 | 100% { 57 | opacity: 1; 58 | } 59 | } 60 | 61 | @-webkit-keyframes fade { 62 | 0% { 63 | opacity: 0; 64 | } 65 | 66 | 100% { 67 | opacity: 1; 68 | } 69 | } 70 | 71 | @-moz-keyframes fade { 72 | 0% { 73 | opacity: 0; 74 | } 75 | 76 | 100% { 77 | opacity: 1; 78 | } 79 | } 80 | 81 | @-o-keyframes fade { 82 | 0% { 83 | opacity: 0; 84 | } 85 | 86 | 100% { 87 | opacity: 1; 88 | } 89 | } -------------------------------------------------------------------------------- /css/lantern.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | .lantern__warpper { 4 | position: fixed; 5 | top: 12px; 6 | left: 40px; 7 | pointer-events: none; 8 | -webkit-user-select: none; 9 | -moz-user-select: none; 10 | -ms-user-select: none; 11 | user-select: none; 12 | z-index: 999 13 | } 14 | 15 | .lantern__warpper.lantern__secondary { 16 | left: calc(100% - 130px) 17 | } 18 | 19 | .lantern__warpper.lantern__secondary .lantern__box { 20 | -webkit-animation-duration: 3s; 21 | animation-duration: 3s 22 | } 23 | 24 | .lantern__box { 25 | position: relative; 26 | display: inline-block; 27 | width: 90px; 28 | height: 70px; 29 | background: rgba(216, 0, 15, .8); 30 | border-radius: 50% 50%; 31 | animation: lantern-swing 3s ease-in-out infinite alternate-reverse; 32 | -webkit-transform-origin: 50% -70px; 33 | -ms-transform-origin: 50% -70px; 34 | transform-origin: 50% -70px; 35 | -webkit-box-shadow: -5px 5px 50px 4px #fa6c00; 36 | box-shadow: -5px 5px 50px 4px #fa6c00 37 | } 38 | 39 | .lantern__box:after, 40 | .lantern__box:before { 41 | content: ""; 42 | position: absolute; 43 | height: 8px; 44 | width: 45px; 45 | left: 50%; 46 | border: 1px solid #dc8f03; 47 | background: -webkit-gradient(linear, left top, right top, from(#dc8f03), color-stop(orange), color-stop(#dc8f03), color-stop(orange), to(#dc8f03)); 48 | background: -o-linear-gradient(left, #dc8f03, orange, #dc8f03, orange, #dc8f03); 49 | background: linear-gradient(90deg, #dc8f03, orange, #dc8f03, orange, #dc8f03) 50 | } 51 | 52 | .lantern__box:before { 53 | top: 0; 54 | border-radius: 5px 5px 0 0; 55 | -webkit-transform: translate(-50%, -50%); 56 | -ms-transform: translate(-50%, -50%); 57 | transform: translate(-50%, -50%) 58 | } 59 | 60 | .lantern__box:after { 61 | bottom: 0; 62 | border-radius: 0 0 5px 5px; 63 | -webkit-transform: translate(-50%, 50%); 64 | -ms-transform: translate(-50%, 50%); 65 | transform: translate(-50%, 50%) 66 | } 67 | 68 | .lantern__line { 69 | position: absolute; 70 | width: 2px; 71 | height: 12px; 72 | top: 0; 73 | left: 50%; 74 | -webkit-transform: translate(-50%, -100%); 75 | -ms-transform: translate(-50%, -100%); 76 | transform: translate(-50%, -100%); 77 | background: #dc8f03 78 | } 79 | 80 | .lantern__circle { 81 | width: 80%; 82 | -webkit-box-sizing: border-box; 83 | box-sizing: border-box 84 | } 85 | 86 | .lantern__circle, 87 | .lantern__circle .lantern__ellipse { 88 | height: 100%; 89 | margin: 0 auto; 90 | border-radius: 50%; 91 | border: 2px solid #dc8f03 92 | } 93 | 94 | .lantern__circle .lantern__ellipse { 95 | width: 50% 96 | } 97 | 98 | .lantern__circle .lantern__text { 99 | font-family: 华文行楷, Microsoft YaHei, sans-serif; 100 | font-size: 24.3px; 101 | color: #dc8f03; 102 | font-weight: 700; 103 | line-height: 66px; 104 | text-align: center 105 | } 106 | 107 | .lantern__tail { 108 | position: relative; 109 | width: 4px; 110 | height: 12px; 111 | margin: 0 auto; 112 | animation: lantern-swing 3s ease-in-out infinite alternate-reverse; 113 | background: orange; 114 | border-radius: 0 0 5px 5px 115 | } 116 | 117 | .lantern__tail .lantern__junction { 118 | position: absolute; 119 | top: 0; 120 | left: 50%; 121 | width: 8px; 122 | height: 8px; 123 | -webkit-transform: translate(-50%, 8.4px); 124 | -ms-transform: translate(-50%, 8.4px); 125 | transform: translate(-50%, 8.4px); 126 | background: #e69603; 127 | border-radius: 50% 128 | } 129 | 130 | .lantern__tail .lantern__rect { 131 | position: absolute; 132 | top: 0; 133 | left: 50%; 134 | -webkit-transform: translate(-50%, 10.8px); 135 | -ms-transform: translate(-50%, 10.8px); 136 | transform: translate(-50%, 10.8px); 137 | width: 8px; 138 | height: 24px; 139 | background: orange; 140 | border-radius: 5px 5px 0 5px 141 | } 142 | 143 | @-webkit-keyframes lantern-swing { 144 | 0% { 145 | -webkit-transform: rotate(-8deg); 146 | transform: rotate(-8deg) 147 | } 148 | 149 | to { 150 | -webkit-transform: rotate(8deg); 151 | transform: rotate(8deg) 152 | } 153 | } 154 | 155 | @keyframes lantern-swing { 156 | 0% { 157 | -webkit-transform: rotate(-8deg); 158 | transform: rotate(-8deg) 159 | } 160 | 161 | to { 162 | -webkit-transform: rotate(8deg); 163 | transform: rotate(8deg) 164 | } 165 | } 166 | 167 | @media (max-width:460px) { 168 | .lantern__warpper { 169 | top: 8px; 170 | left: 30px 171 | } 172 | 173 | .lantern__warpper.lantern__secondary { 174 | left: calc(100% - 80px) 175 | } 176 | 177 | .lantern__box { 178 | width: 50px; 179 | height: 40px; 180 | -webkit-transform-origin: 50% -40px; 181 | -ms-transform-origin: 50% -40px; 182 | transform-origin: 50% -40px; 183 | -webkit-box-shadow: -5px 5px 50px -1px #fa6c00; 184 | box-shadow: -5px 5px 50px -1px #fa6c00 185 | } 186 | 187 | .lantern__box:after, 188 | .lantern__box:before { 189 | height: 4px; 190 | width: 25px 191 | } 192 | 193 | .lantern__line { 194 | width: 2px; 195 | height: 8px 196 | } 197 | 198 | .lantern__circle .lantern__text { 199 | font-size: 13.5px; 200 | line-height: 38px 201 | } 202 | 203 | .lantern__tail { 204 | width: 4px; 205 | height: 8px 206 | } 207 | 208 | .lantern__tail .lantern__junction { 209 | width: 8px; 210 | height: 8px; 211 | -webkit-transform: translate(-50%, 5.6px); 212 | -ms-transform: translate(-50%, 5.6px); 213 | transform: translate(-50%, 5.6px) 214 | } 215 | 216 | .lantern__tail .lantern__rect { 217 | -webkit-transform: translate(-50%, 7.2px); 218 | -ms-transform: translate(-50%, 7.2px); 219 | transform: translate(-50%, 7.2px); 220 | width: 8px; 221 | height: 16px 222 | } 223 | } 224 | 225 | @media screen and (max-width:720px) { 226 | .lantern__warpper { 227 | display: none; 228 | } 229 | } -------------------------------------------------------------------------------- /css/loading.css: -------------------------------------------------------------------------------- 1 | #loading-box .loading-left-bg, 2 | #loading-box .loading-right-bg { 3 | position: fixed; 4 | z-index: 999998; 5 | width: 50%; 6 | height: 100%; 7 | background-color: rgb(81 81 81 / 80%); 8 | transition: all 0.7s cubic-bezier(0.42, 0, 0, 1.01); 9 | backdrop-filter: blur(10px); 10 | } 11 | 12 | #loading-box .loading-right-bg { 13 | right: 0; 14 | } 15 | 16 | #loading-box>.spinner-box { 17 | position: fixed; 18 | z-index: 999999; 19 | display: flex; 20 | justify-content: center; 21 | align-items: center; 22 | width: 100%; 23 | height: 100vh; 24 | } 25 | 26 | #loading-box .spinner-box .loading-word { 27 | position: absolute; 28 | color: #ffffff; 29 | font-size: 0.95rem; 30 | transform: translateY(64px); 31 | text-align: center; 32 | } 33 | 34 | p.loading-title { 35 | font-size: 1.25rem; 36 | margin: 20px 10px 4px 10px; 37 | } 38 | 39 | #loading-box .spinner-box .configure-core { 40 | width: 100%; 41 | height: 100%; 42 | background-color: #37474f; 43 | } 44 | 45 | div.loaded div.loading-left-bg { 46 | transform: translate(-100%, 0); 47 | } 48 | 49 | div.loaded div.loading-right-bg { 50 | transform: translate(100%, 0); 51 | } 52 | 53 | div.loaded div.spinner-box { 54 | display: none !important; 55 | } 56 | 57 | .loader { 58 | position: absolute; 59 | top: calc(50% - 32px); 60 | left: calc(50% - 32px); 61 | width: 64px; 62 | height: 64px; 63 | border-radius: 50%; 64 | perspective: 800px; 65 | transition: all 0.7s cubic-bezier(0.42, 0, 0, 1.01); 66 | } 67 | 68 | .inner { 69 | position: absolute; 70 | box-sizing: border-box; 71 | width: 100%; 72 | height: 100%; 73 | border-radius: 50%; 74 | } 75 | 76 | .inner.one { 77 | left: 0%; 78 | top: 0%; 79 | animation: rotate-one 1s linear infinite; 80 | border-bottom: 3px solid #EFEFFA; 81 | } 82 | 83 | .inner.two { 84 | right: 0%; 85 | top: 0%; 86 | animation: rotate-two 1s linear infinite; 87 | border-right: 3px solid #EFEFFA; 88 | } 89 | 90 | .inner.three { 91 | right: 0%; 92 | bottom: 0%; 93 | animation: rotate-three 1s linear infinite; 94 | border-top: 3px solid #EFEFFA; 95 | } 96 | 97 | @keyframes rotate-one { 98 | 0% { 99 | transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg); 100 | } 101 | 102 | 100% { 103 | transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg); 104 | } 105 | } 106 | 107 | @keyframes rotate-two { 108 | 0% { 109 | transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg); 110 | } 111 | 112 | 100% { 113 | transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg); 114 | } 115 | } 116 | 117 | @keyframes rotate-three { 118 | 0% { 119 | transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg); 120 | } 121 | 122 | 100% { 123 | transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg); 124 | } 125 | } -------------------------------------------------------------------------------- /css/mobile.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | /*小于1400px时*/ 4 | @media (max-width: 1400px) {} 5 | 6 | /*小于1200px时*/ 7 | @media (max-width: 1200px) { 8 | 9 | /*总布局*/ 10 | .container, 11 | .container-lg, 12 | .container-md, 13 | .container-sm { 14 | max-width: 1000px !important; 15 | } 16 | 17 | .weekday { 18 | display: none; 19 | } 20 | 21 | /*音乐播放器*/ 22 | .music-text { 23 | max-width: 170px !important; 24 | } 25 | } 26 | 27 | /*小于992px时*/ 28 | @media (max-width: 992px) { 29 | 30 | /*总布局*/ 31 | .container, 32 | .container-lg, 33 | .container-md, 34 | .container-sm { 35 | max-width: 900px !important; 36 | } 37 | 38 | .col.left { 39 | margin-right: 0.75rem; 40 | } 41 | 42 | .col.right { 43 | margin-left: 0.75rem; 44 | } 45 | 46 | /*一言*/ 47 | .col.hitokotos { 48 | display: none; 49 | } 50 | 51 | /*时间卡片*/ 52 | .col.times { 53 | margin-left: 0rem; 54 | } 55 | 56 | /*日期显示*/ 57 | .weekday { 58 | display: inline; 59 | } 60 | 61 | /*标题文字*/ 62 | .main-img img { 63 | width: 110px; 64 | } 65 | 66 | span.img-title { 67 | font-size: 4.75rem; 68 | } 69 | 70 | span.img-text { 71 | font-size: 1.75rem; 72 | } 73 | 74 | /*链接卡片文字*/ 75 | span.link-name { 76 | display: none !important; 77 | } 78 | 79 | .link-card i { 80 | margin-left: 10px !important; 81 | margin-right: 10px !important; 82 | } 83 | } 84 | 85 | /*小于840px时*/ 86 | @media (max-width: 840px) { 87 | 88 | 89 | /*社交链接*/ 90 | .social { 91 | max-width: 100%; 92 | justify-content: center; 93 | } 94 | 95 | #link-text { 96 | display: none !important; 97 | } 98 | 99 | .link i { 100 | margin: 0px 20px; 101 | } 102 | } 103 | 104 | /*小于789px时*/ 105 | @media (max-width: 789px) { 106 | 107 | /*标题文字*/ 108 | span.img-text { 109 | display: none; 110 | } 111 | } 112 | 113 | /*小于768px时*/ 114 | @media (max-width: 768px) { 115 | 116 | /*标题文字*/ 117 | .main-img img { 118 | width: 100px; 119 | } 120 | 121 | span.img-title { 122 | font-size: 4.5rem; 123 | } 124 | } 125 | 126 | /*小于720px时*/ 127 | @media (max-width: 720px) { 128 | 129 | /*左侧栏高度*/ 130 | .main-left { 131 | transform: translateY(20px); 132 | } 133 | 134 | /*左侧栏边距*/ 135 | .col.left { 136 | margin-right: 0rem; 137 | } 138 | 139 | /*右侧栏隐藏*/ 140 | .col.right { 141 | display: none; 142 | } 143 | 144 | /*右侧栏边距*/ 145 | .col.right { 146 | margin-left: 0rem; 147 | } 148 | 149 | /*标题文字*/ 150 | span.img-text { 151 | display: inline; 152 | } 153 | 154 | /*简介*/ 155 | .message { 156 | max-width: 100%; 157 | pointer-events: none; 158 | } 159 | 160 | /* 161 | .des { 162 | justify-content: space-between; 163 | } 164 | */ 165 | 166 | /*链接卡片*/ 167 | .link-card { 168 | height: 80px !important; 169 | align-items: center !important; 170 | flex-direction: column !important; 171 | justify-content: center !important; 172 | } 173 | 174 | .link-card i { 175 | font-size: 1.25rem; 176 | margin: 4px 0px; 177 | } 178 | 179 | i.iconfont.icon-a-daohangzhiyindingwei-05, 180 | i.iconfont.icon-z_shangpinheji { 181 | font-size: 1.65rem; 182 | } 183 | 184 | span.link-name { 185 | display: block !important; 186 | font-size: 0.85rem; 187 | } 188 | 189 | .link-card:hover span.link-name { 190 | font-size: 0.95rem; 191 | } 192 | 193 | span.line-text, 194 | i.iconfont.icon-link { 195 | font-size: 1.05rem; 196 | } 197 | 198 | /*菜单栏按钮*/ 199 | .menu { 200 | display: flex; 201 | justify-content: center; 202 | position: fixed; 203 | top: 84%; 204 | } 205 | 206 | .munu-button { 207 | padding: 5px 20px; 208 | background: rgb(0 0 0 / 20%); 209 | backdrop-filter: blur(10px); 210 | border-radius: 6px; 211 | font-size: 1.25rem; 212 | transition: 0.5s; 213 | width: 60px; 214 | display: flex; 215 | justify-content: center; 216 | align-items: center; 217 | height: 40px; 218 | } 219 | 220 | /*页脚文字*/ 221 | footer { 222 | font-size: 0.85rem; 223 | } 224 | 225 | /*一言*/ 226 | .col.hitokotos { 227 | margin-right: 0rem; 228 | } 229 | 230 | .hitokoto-text, 231 | .hitokoto-from { 232 | font-size: 1.05rem; 233 | } 234 | 235 | /*音乐播放器*/ 236 | .music-text { 237 | max-width: 100% !important; 238 | } 239 | 240 | #music-name { 241 | font-size: 1.05rem; 242 | } 243 | 244 | #music-open { 245 | display: none; 246 | } 247 | 248 | /*隐藏鼠标样式*/ 249 | #cursor { 250 | background: transparent !important; 251 | } 252 | 253 | } 254 | 255 | /*小于512px时*/ 256 | @media (max-width: 512px) { 257 | #made { 258 | display: none; 259 | } 260 | } 261 | 262 | /*小于390px时*/ 263 | @media (max-width: 390px) { 264 | .main-img img { 265 | display: none; 266 | } 267 | 268 | #beian { 269 | display: none; 270 | } 271 | } 272 | 273 | /* 大于568px时 */ 274 | @media (min-width: 568px) { 275 | .iziToast { 276 | border-radius: 30px !important; 277 | } 278 | } 279 | 280 | 281 | /* 大于720px时 */ 282 | @media (min-width: 720px) { 283 | .menu { 284 | display: none !important; 285 | } 286 | } 287 | 288 | /* 大于992px时 */ 289 | @media (min-width: 992px) { 290 | 291 | /*时钟显示*/ 292 | span#win_text, 293 | span#win_speed { 294 | display: none; 295 | } 296 | } 297 | 298 | /* 大于1400px时 */ 299 | @media (min-width: 1400px) { 300 | 301 | /*时钟显示*/ 302 | span#win_text, 303 | span#win_speed { 304 | display: inline !important; 305 | } 306 | } 307 | 308 | 309 | /* 310 | 菜单按钮 311 | */ 312 | .menus .col.left { 313 | display: none; 314 | } 315 | 316 | .menus .col.right { 317 | display: block !important; 318 | transition: 0.5s; 319 | padding: 0rem 0.75rem; 320 | } 321 | 322 | /*功能区调整*/ 323 | .menus .col.hitokotos { 324 | display: block; 325 | } 326 | 327 | .menus .col.times { 328 | display: none; 329 | } 330 | 331 | /*边界布局*/ 332 | .menus .row { 333 | --bs-gutter-x: 0rem; 334 | } 335 | 336 | .menus .col.\32 { 337 | margin: 0 0.75rem; 338 | } 339 | 340 | .menus .logo { 341 | display: inline !important; 342 | text-align: center; 343 | position: fixed; 344 | top: 8%; 345 | font-size: 1.75rem; 346 | } 347 | 348 | /*第二屏logo*/ 349 | .logo-text { 350 | font-family: 'Pacifico-Regular' !important; 351 | } 352 | 353 | /*切换动画*/ 354 | /* 355 | .hitokoto, 356 | .time, 357 | .link-card, 358 | .message { 359 | animation: fade-in; 360 | -webkit-animation: fade-in 0.5s; 361 | -moz-animation: fade-in 0.5s; 362 | -o-animation: fade-in 0.5s; 363 | -ms-animation: fade-in 0.5s; 364 | } 365 | */ 366 | .logo, 367 | .line, 368 | .main-img, 369 | .social, 370 | .close, 371 | .hitokoto, 372 | .time, 373 | .link-card, 374 | .message, 375 | #link-text { 376 | animation: fade 0.5; 377 | -webkit-animation: fade 0.5s; 378 | -moz-animation: fade 0.5s; 379 | -o-animation: fade 0.5s; 380 | -ms-animation: fade 0.5s; 381 | } 382 | 383 | /* 384 | 移动端功能区切换 385 | */ 386 | .mobile .col.hitokotos { 387 | display: none; 388 | } 389 | 390 | .mobile .col.times { 391 | display: block; 392 | } -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | 作者: imsyy 3 | 主页:https://www.imsyy.top/ 4 | GitHub:https://github.com/imsyy/home 5 | 版权所有,请勿删除 6 | */ 7 | 8 | @charset "utf-8"; 9 | 10 | @font-face { 11 | font-family: "MiSans"; 12 | font-style: normal; 13 | font-weight: 400; 14 | font-display: swap; 15 | src: url('../font/MiSans-Regular.subset.woff2') format('woff2'); 16 | /* src: url('../font/MiSans-Regular.subset.ttf') format('truetype'); */ 17 | } 18 | 19 | @font-face { 20 | font-family: "Pacifico-Regular"; 21 | src: url('../font/Pacifico-Regular.ttf') format('truetype'); 22 | } 23 | 24 | @font-face { 25 | font-family: "UnidreamLED"; 26 | src: url('../font/UnidreamLED.ttf') format('truetype'); 27 | } 28 | 29 | /*全局样式*/ 30 | html, 31 | body { 32 | width: 100%; 33 | height: 100%; 34 | margin: 0; 35 | padding: 0; 36 | background-color: #333; 37 | overflow: hidden; 38 | } 39 | 40 | *, 41 | a, 42 | p { 43 | text-decoration: none; 44 | transition: 0.3s; 45 | color: #efefef; 46 | user-select: none; 47 | font-family: 'MiSans', sans-serif; 48 | cursor: url("data:image/svg+xml,") 4 4, auto !important; 49 | } 50 | 51 | 52 | a:hover { 53 | color: white; 54 | } 55 | 56 | .cards { 57 | transition: 0.5s; 58 | } 59 | 60 | .cards:hover { 61 | transform: scale(1.01); 62 | transition: 0.5s; 63 | } 64 | 65 | .cards:active { 66 | transform: scale(0.95); 67 | transition: 0.5s; 68 | } 69 | 70 | .noscript { 71 | z-index: 999999; 72 | font-size: 0.95rem; 73 | text-align: center; 74 | margin: 14px 0px; 75 | } 76 | 77 | /*鼠标样式*/ 78 | #g-pointer-1 { 79 | display: none; 80 | } 81 | 82 | #g-pointer-2 { 83 | position: absolute; 84 | top: 0; 85 | left: 0; 86 | width: 18px; 87 | height: 18px; 88 | transition: 0.05s linear; 89 | pointer-events: none; 90 | background: #ffffff40; 91 | border-radius: 50%; 92 | z-index: 9999999; 93 | } 94 | 95 | /*背景*/ 96 | .bg-all { 97 | z-index: -1; 98 | position: absolute; 99 | top: calc(0px + 0px); 100 | left: 0; 101 | width: 100%; 102 | height: calc(100% - 0px); 103 | transition: .25s; 104 | } 105 | 106 | #bg { 107 | transform: scale(1.10); 108 | filter: blur(10px); 109 | position: fixed; 110 | left: 0; 111 | top: 0; 112 | width: 100%; 113 | height: 100%; 114 | object-fit: cover; 115 | transition: opacity 1s, transform .25s, filter .25s; 116 | backface-visibility: hidden; 117 | } 118 | 119 | img.error { 120 | display: none; 121 | } 122 | 123 | .cover { 124 | opacity: 0; 125 | position: fixed; 126 | left: 0; 127 | top: 0; 128 | width: 100%; 129 | height: 100%; 130 | background-image: radial-gradient(rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .5) 100%), radial-gradient(rgba(0, 0, 0, 0) 33%, rgba(0, 0, 0, .3) 166%); 131 | transition: .25s; 132 | } 133 | 134 | /*页面样式*/ 135 | section { 136 | display: block; 137 | position: fixed; 138 | width: 100%; 139 | height: 100%; 140 | min-height: 600px; 141 | transform: scale(1.10); 142 | transition: ease 1.25s; 143 | opacity: 0; 144 | filter: blur(10px); 145 | } 146 | 147 | main { 148 | width: 100%; 149 | height: 100%; 150 | background: rgb(0 0 0 / 20%); 151 | display: flex; 152 | /*align-items: center;*/ 153 | } 154 | 155 | .container { 156 | width: 100%; 157 | display: flex; 158 | justify-content: space-around; 159 | } 160 | 161 | .row { 162 | align-items: center; 163 | justify-content: center; 164 | width: 100%; 165 | --bs-gutter-x: 0 !important; 166 | } 167 | 168 | .col.\32 { 169 | margin: 0 1.5rem; 170 | } 171 | 172 | .main-left { 173 | /*transform: translateY(240px);*/ 174 | transform: translateY(40px); 175 | } 176 | 177 | .row.rightone { 178 | display: flex; 179 | align-items: center; 180 | } 181 | 182 | /*头像*/ 183 | .main-img { 184 | display: flex; 185 | align-items: center; 186 | } 187 | 188 | .main-img img { 189 | border-radius: 50%; 190 | width: 120px; 191 | } 192 | 193 | .main-img img:hover { 194 | transform: rotate(360deg); 195 | } 196 | 197 | .img-title { 198 | width: 100%; 199 | margin-left: 12px; 200 | transform: translateY(-8%); 201 | } 202 | 203 | .img-title-big { 204 | font-size: 5rem; 205 | font-family: 'Pacifico-Regular' !important; 206 | } 207 | 208 | span.img-text { 209 | font-size: 2rem; 210 | font-family: 'Pacifico-Regular' !important; 211 | } 212 | 213 | /*简介*/ 214 | .message { 215 | background: rgb(0 0 0 / 25%); 216 | backdrop-filter: blur(10px); 217 | /*margin: 0.5rem;*/ 218 | padding: 1rem; 219 | border-radius: 6px; 220 | margin-top: 3.5rem; 221 | max-width: 460px; 222 | cursor: pointer; 223 | } 224 | 225 | .des { 226 | display: flex; 227 | justify-content: space-between; 228 | } 229 | 230 | .des-title { 231 | margin: 1rem 1rem; 232 | line-height: 2rem; 233 | margin-right: auto; 234 | } 235 | 236 | span#change { 237 | font-family: 'Pacifico-Regular' !important; 238 | } 239 | 240 | .fa-solid.fa-quote-right { 241 | align-self: flex-end; 242 | } 243 | 244 | /*社交链接*/ 245 | .social { 246 | margin-top: 1rem; 247 | display: flex; 248 | align-items: center; 249 | max-width: 460px; 250 | height: 42px; 251 | } 252 | 253 | .link i { 254 | font-size: 1.45rem; 255 | margin: 2px 12px; 256 | } 257 | 258 | /* 259 | .social .link i:hover { 260 | font-size: 2.5rem; 261 | } 262 | */ 263 | 264 | #link-text { 265 | display: none; 266 | flex: 1; 267 | text-align: right; 268 | margin-right: 1rem; 269 | } 270 | 271 | /*一言*/ 272 | .col.hitokotos { 273 | margin-right: 0.75rem; 274 | } 275 | 276 | .hitokoto { 277 | width: 100%; 278 | background: rgb(0 0 0 / 25%); 279 | backdrop-filter: blur(10px); 280 | padding: 20px; 281 | border-radius: 6px; 282 | height: 165px; 283 | display: flex; 284 | justify-content: center; 285 | flex-direction: column; 286 | } 287 | 288 | .hitokoto-all { 289 | margin-top: 10px; 290 | display: flex; 291 | flex-direction: column; 292 | } 293 | 294 | .hitokoto-text { 295 | font-size: 1.10rem; 296 | } 297 | 298 | #hitokoto_text { 299 | word-break: break-all; 300 | text-overflow: ellipsis; 301 | overflow: hidden; 302 | display: -webkit-box; 303 | -webkit-line-clamp: 2; 304 | -webkit-box-orient: vertical; 305 | } 306 | 307 | .hitokoto-from { 308 | margin-top: 10px; 309 | font-weight: bold; 310 | align-self: flex-end; 311 | font-size: 1.10rem; 312 | } 313 | 314 | .open-music { 315 | display: none; 316 | align-items: center; 317 | justify-content: center; 318 | background: rgb(0 0 0 / 15%); 319 | padding: 4px 0px; 320 | font-size: 0.95rem; 321 | animation: fade; 322 | -webkit-animation: fade 0.5s; 323 | -moz-animation: fade 0.5s; 324 | -o-animation: fade 0.5s; 325 | -ms-animation: fade 0.5s; 326 | } 327 | 328 | .open-music:hover { 329 | background: rgb(0 0 0 / 30%); 330 | } 331 | 332 | /*音乐播放器卡片*/ 333 | #music { 334 | display: none; 335 | } 336 | 337 | .music { 338 | width: 100%; 339 | background: rgb(0 0 0 / 25%); 340 | backdrop-filter: blur(10px); 341 | padding: 20px; 342 | border-radius: 6px; 343 | height: 165px; 344 | display: flex; 345 | justify-content: center; 346 | flex-direction: column; 347 | animation: fade; 348 | -webkit-animation: fade 0.3s; 349 | -moz-animation: fade 0.3s; 350 | -o-animation: fade 0.3s; 351 | -ms-animation: fade 0.3s; 352 | } 353 | 354 | .music-all { 355 | display: flex; 356 | flex-direction: column; 357 | align-items: center; 358 | justify-content: space-around; 359 | height: 100%; 360 | } 361 | 362 | .music-button { 363 | display: flex; 364 | align-items: center; 365 | margin-bottom: 6px; 366 | } 367 | 368 | .music-control { 369 | display: flex; 370 | flex-direction: row; 371 | align-items: center; 372 | justify-content: space-evenly; 373 | width: 100%; 374 | } 375 | 376 | .music-menu { 377 | height: 26px; 378 | display: flex; 379 | align-items: center; 380 | } 381 | 382 | .fa-solid.fa-play, 383 | .fa-solid.fa-pause { 384 | padding: 4px; 385 | font-size: 2.25rem; 386 | } 387 | 388 | #play { 389 | width: 50px; 390 | height: 50px; 391 | display: flex; 392 | justify-content: center; 393 | align-items: center; 394 | border-radius: 6px; 395 | padding: 6px 10px; 396 | } 397 | 398 | #play:hover { 399 | background: rgb(255 255 255 / 20%); 400 | } 401 | 402 | #last, 403 | #next { 404 | font-size: 1.75rem; 405 | border-radius: 6px; 406 | padding: 6px 10px; 407 | } 408 | 409 | #last:hover, 410 | #next:hover { 411 | background: rgb(255 255 255 / 20%); 412 | } 413 | 414 | #play:active, 415 | #last:active, 416 | #next:active { 417 | transform: scale(0.95); 418 | } 419 | 420 | .music-text { 421 | margin-top: 6px; 422 | font-size: 1.10rem; 423 | text-overflow: ellipsis; 424 | max-width: 220px; 425 | overflow-x: hidden; 426 | white-space: nowrap; 427 | animation: fade; 428 | -webkit-animation: fade 0.5s; 429 | -moz-animation: fade 0.5s; 430 | -o-animation: fade 0.5s; 431 | -ms-animation: fade 0.5s; 432 | } 433 | 434 | #music-open, 435 | #music-close { 436 | background: rgb(255 255 255 / 15%); 437 | padding: 2px 8px; 438 | border-radius: 6px; 439 | margin: 0px 6px; 440 | text-overflow: ellipsis; 441 | overflow-x: hidden; 442 | white-space: nowrap; 443 | } 444 | 445 | #music-open:hover, 446 | #music-close:hover { 447 | background: rgb(255 255 255 / 30%); 448 | } 449 | 450 | .music-volume { 451 | margin-top: 6px; 452 | display: flex; 453 | align-items: center; 454 | flex-direction: row; 455 | animation: fade; 456 | -webkit-animation: fade 0.5s; 457 | -moz-animation: fade 0.5s; 458 | -o-animation: fade 0.5s; 459 | -ms-animation: fade 0.5s; 460 | } 461 | 462 | #volume-ico { 463 | padding-top: 2px; 464 | margin-right: 10px; 465 | } 466 | 467 | .music-volume i { 468 | font-size: 1.25rem; 469 | } 470 | 471 | input[type=range] { 472 | -webkit-appearance: none; 473 | width: 100%; 474 | border-radius: 10px; 475 | height: 8px; 476 | background: rgb(255 255 255 / 15%); 477 | } 478 | 479 | input[type=range]::-webkit-slider-thumb, 480 | input[type=range]::-moz-range-thumb { 481 | -webkit-appearance: none; 482 | } 483 | 484 | input[type=range]::-webkit-slider-runnable-track, 485 | input[type=range]::-moz-range-track { 486 | height: 15px; 487 | border-radius: 10px; 488 | } 489 | 490 | input[type=range]:focus { 491 | outline: none; 492 | } 493 | 494 | input[type=range]::-webkit-slider-thumb { 495 | -webkit-appearance: none; 496 | height: 15px; 497 | width: 15px; 498 | background: #ffffff; 499 | border-radius: 50%; 500 | } 501 | 502 | /*时间卡片*/ 503 | .col.times { 504 | margin-left: 0.75rem; 505 | } 506 | 507 | .time { 508 | width: 100%; 509 | background: rgb(0 0 0 / 25%); 510 | backdrop-filter: blur(10px); 511 | padding: 20px; 512 | border-radius: 6px; 513 | text-align: center; 514 | display: flex; 515 | flex-direction: column; 516 | height: 165px; 517 | font-size: 1.10rem; 518 | } 519 | 520 | span.time-text { 521 | font-size: 3.25rem; 522 | letter-spacing: 2px; 523 | font-family: 'UnidreamLED' !important; 524 | } 525 | 526 | .weather { 527 | display: flex; 528 | flex-direction: row; 529 | justify-content: center; 530 | } 531 | 532 | /*分割线*/ 533 | .line { 534 | margin: 1rem 0.25rem; 535 | margin-top: 2rem; 536 | font-size: 1.10rem; 537 | display: flex; 538 | align-items: center; 539 | } 540 | 541 | span.line-text { 542 | font-size: 1.2rem; 543 | margin: 0px 6px; 544 | } 545 | 546 | i.iconfont.icon-link { 547 | font-size: 1.2rem; 548 | } 549 | 550 | /*链接卡片*/ 551 | .link-card { 552 | height: 100px; 553 | width: 100%; 554 | border-radius: 6px; 555 | background: rgb(0 0 0 / 25%); 556 | backdrop-filter: blur(10px); 557 | display: flex; 558 | align-items: center; 559 | flex-direction: row; 560 | justify-content: center; 561 | } 562 | 563 | .link-card i { 564 | margin-left: 0px; 565 | font-size: 1.65rem; 566 | } 567 | 568 | .link-card:hover { 569 | background: rgb(0 0 0 / 40%); 570 | transition: 0.5s; 571 | } 572 | 573 | span.link-name { 574 | font-size: 1.1rem; 575 | } 576 | 577 | .link-card:hover span.link-name { 578 | font-size: 1.15rem; 579 | transition: 0.1s; 580 | } 581 | 582 | i.iconfont.icon-a-daohangzhiyindingwei-05, 583 | i.iconfont.icon-z_shangpinheji { 584 | font-size: 2rem; 585 | } 586 | 587 | /*更多页面*/ 588 | .more { 589 | display: none !important; 590 | width: 46%; 591 | z-index: 999; 592 | position: fixed; 593 | height: 82%; 594 | right: 4%; 595 | background: rgb(0 0 0 / 25%); 596 | backdrop-filter: blur(10px); 597 | top: 7%; 598 | border-radius: 6px; 599 | padding: 30px; 600 | } 601 | 602 | .mores .more { 603 | display: flex !important; 604 | justify-content: space-evenly; 605 | flex-direction: column; 606 | align-items: center; 607 | animation: fade; 608 | -webkit-animation: fade 0.3s; 609 | -moz-animation: fade 0.3s; 610 | -o-animation: fade 0.3s; 611 | -ms-animation: fade 0.3s; 612 | } 613 | 614 | .mores .col.right { 615 | display: none; 616 | } 617 | 618 | /*关闭按钮*/ 619 | 620 | .close { 621 | display: none; 622 | left: auto; 623 | top: 4px; 624 | right: 8px; 625 | font-size: 1.45rem; 626 | } 627 | 628 | .close:hover { 629 | transform: scale(1.2); 630 | } 631 | 632 | /*时间胶囊*/ 633 | .progress { 634 | width: 100%; 635 | height: 20px; 636 | align-items: center; 637 | background: rgb(0 0 0 / 0%) !important; 638 | backdrop-filter: blur(5px); 639 | } 640 | 641 | .progress-bar { 642 | font-family: 'UnidreamLED' !important; 643 | background-color: #efefef !important; 644 | color: rgb(86 77 89) !important; 645 | font-size: 0.95rem; 646 | height: 20px; 647 | } 648 | 649 | .date { 650 | width: 100%; 651 | } 652 | 653 | .date-text { 654 | margin: 1rem 0rem 0.5rem 0rem; 655 | } 656 | 657 | /*其他链接*/ 658 | 659 | .mores .link-card { 660 | height: 48px !important; 661 | } 662 | 663 | /*更多页面*/ 664 | .box-left { 665 | flex: 0 44%; 666 | min-width: 400px; 667 | } 668 | 669 | .box { 670 | position: fixed; 671 | left: 0; 672 | right: 0; 673 | top: 0; 674 | bottom: 0; 675 | z-index: 1996; 676 | background-color: rgba(0, 0, 0, .5); 677 | backdrop-filter: blur(20px); 678 | animation: fade 0.3s; 679 | } 680 | 681 | .box-wrapper { 682 | position: absolute; 683 | top: 50%; 684 | left: 50%; 685 | -webkit-transform: translate(-50%, -50%); 686 | transform: translate(-50%, -50%); 687 | z-index: 1997; 688 | width: 80%; 689 | height: 80%; 690 | background: rgb(255 255 255 / 40%); 691 | border-radius: 6px; 692 | -webkit-animation: fade .3s; 693 | animation: fade .3s; 694 | padding: 40px; 695 | display: flex; 696 | flex-direction: row; 697 | justify-content: space-between; 698 | } 699 | 700 | #accordion { 701 | min-width: 360px; 702 | margin-right: 40px; 703 | margin-top: 20px; 704 | margin-left: 14px; 705 | border-radius: 8px; 706 | box-shadow: 0 2px 2px 0 rgb(0 0 0 / 7%), 0 1px 5px 0 rgb(0 0 0 / 10%); 707 | } 708 | 709 | .accordion-item { 710 | background-color: transparent !important; 711 | border: none !important; 712 | } 713 | 714 | .accordion-item:first-of-type .accordion-button { 715 | border-radius: 8px; 716 | } 717 | 718 | .accordion-button { 719 | color: white !important; 720 | background-color: transparent; 721 | transition: 0.3s; 722 | 723 | } 724 | 725 | .accordion-button:focus { 726 | border-color: #ffffff26 !important; 727 | outline: none !important; 728 | box-shadow: none !important; 729 | border-radius: 8px; 730 | transition: 0.3s; 731 | } 732 | 733 | .accordion-button:not(.collapsed) { 734 | background-color: #ffffff26; 735 | border-bottom-left-radius: 0px !important; 736 | border-bottom-right-radius: 0px !important; 737 | font-weight: bold; 738 | transition: 0.3s; 739 | } 740 | 741 | .accordion-button::after { 742 | border-radius: 8px; 743 | background-image: none !important; 744 | } 745 | 746 | .accordion-body { 747 | padding: 1rem 0rem !important; 748 | background-color: #ffffff10; 749 | } 750 | 751 | .closebox { 752 | left: auto; 753 | top: 10px; 754 | right: 16px; 755 | font-size: 1.5rem; 756 | } 757 | 758 | .closebox:hover { 759 | transform: scale(1.2); 760 | } 761 | 762 | i.iconfont.icon-close, 763 | i.iconfont.icon-github1 { 764 | font-size: 1.45rem; 765 | } 766 | 767 | /*个性设置*/ 768 | .set { 769 | display: flex; 770 | flex-direction: column; 771 | padding: 0rem 1.5rem; 772 | } 773 | 774 | .btn-group, 775 | .btn-group-vertical { 776 | margin-top: 10px; 777 | } 778 | 779 | .btn-outline-primary { 780 | color: #eeeeee !important; 781 | border-color: #ffffff26 !important; 782 | } 783 | 784 | .btn-outline-primary:hover { 785 | background-color: #ffffff26 !important; 786 | border-color: #eeeeee !important; 787 | } 788 | 789 | .btn-check:focus+.btn, 790 | .btn:focus { 791 | box-shadow: none !important; 792 | } 793 | 794 | .btn-check:active+.btn-outline-primary, 795 | .btn-check:checked+.btn-outline-primary, 796 | .btn-outline-primary.active, 797 | .btn-outline-primary.dropdown-toggle.show, 798 | .btn-outline-primary:active { 799 | background-color: #ffffff26 !important; 800 | border-color: #eeeeee !important; 801 | } 802 | 803 | #wallpaper { 804 | display: flex; 805 | align-items: center; 806 | justify-content: flex-start; 807 | flex-wrap: wrap; 808 | } 809 | 810 | .form-radio { 811 | flex: 1 1 0%; 812 | width: 31.3%; 813 | min-width: 31.3%; 814 | max-width: 31.3%; 815 | text-align: center; 816 | margin: 1%; 817 | } 818 | 819 | input[type="radio"]+label { 820 | padding: 6px 10px; 821 | background: #ffffff26; 822 | border-radius: 8px; 823 | transition: 0.3s; 824 | border: 2px solid transparent; 825 | width: 100%; 826 | } 827 | 828 | input[type="radio"]:checked+label { 829 | background: #ffffff06; 830 | border: 2px solid #eeeeee; 831 | } 832 | 833 | /*更新日志*/ 834 | .upnote { 835 | display: flex; 836 | flex-direction: column; 837 | padding: 0rem 1.5rem; 838 | height: 156px; 839 | overflow-y: auto; 840 | } 841 | 842 | .uptext { 843 | line-height: 32px; 844 | } 845 | 846 | /*Aplayer*/ 847 | .box-right { 848 | flex: 0 54%; 849 | max-width: 54%; 850 | display: flex; 851 | flex-direction: row; 852 | justify-content: center; 853 | align-items: center; 854 | } 855 | 856 | .aplayer { 857 | background: transparent !important; 858 | width: 100%; 859 | border-radius: 6px !important; 860 | margin-right: 18px; 861 | } 862 | 863 | .aplayer.aplayer-withlrc .aplayer-pic { 864 | display: none; 865 | } 866 | 867 | .aplayer.aplayer-withlrc .aplayer-info { 868 | margin-left: 0px !important; 869 | } 870 | 871 | .aplayer.aplayer-withlrc .aplayer-info { 872 | background-color: #ffffff26; 873 | border-radius: 6px; 874 | } 875 | 876 | /*歌曲名称*/ 877 | .aplayer .aplayer-info .aplayer-music .aplayer-title { 878 | font-size: 16px !important; 879 | } 880 | 881 | /*音乐列表*/ 882 | .aplayer.aplayer-withlist .aplayer-list { 883 | margin-top: 6px; 884 | } 885 | 886 | .aplayer .aplayer-list ol li.aplayer-list-light { 887 | background: #ffffff26 !important; 888 | border-radius: 6px !important; 889 | } 890 | 891 | .aplayer .aplayer-list ol li:hover { 892 | background: #ffffff26 !important; 893 | border-radius: 6px !important; 894 | } 895 | 896 | .aplayer .aplayer-list ol li { 897 | border-top: 1px solid transparent !important; 898 | } 899 | 900 | .aplayer.aplayer-withlist .aplayer-info { 901 | border-bottom: 1px solid transparent !important; 902 | } 903 | 904 | .aplayer-list-cur { 905 | background-color: #eeeeee !important; 906 | } 907 | 908 | /*控制面板 - Bug*/ 909 | .aplayer .aplayer-info .aplayer-controller { 910 | display: none !important; 911 | } 912 | 913 | /*歌词间距*/ 914 | .aplayer .aplayer-lrc { 915 | margin: 4px 0 0px !important; 916 | height: 34px !important; 917 | } 918 | 919 | .aplayer .aplayer-lrc { 920 | text-align: left !important; 921 | margin-left: 5px !important; 922 | } 923 | 924 | /*歌词大小*/ 925 | .aplayer .aplayer-lrc p.aplayer-lrc-current { 926 | font-size: 14.5px !important; 927 | } 928 | 929 | /*全局字体颜色*/ 930 | .aplayer .aplayer-info .aplayer-music .aplayer-title, 931 | .aplayer .aplayer-info .aplayer-music .aplayer-author, 932 | .aplayer .aplayer-lrc p, 933 | span.aplayer-list-title, 934 | span.aplayer-list-author, 935 | span.aplayer-list-index { 936 | color: white !important; 937 | } 938 | 939 | /*全局背景*/ 940 | .aplayer .aplayer-lrc:after, 941 | .aplayer .aplayer-lrc:before { 942 | background: transparent !important; 943 | } 944 | 945 | /*Aplayer结束*/ 946 | 947 | /*移动端页面切换按钮*/ 948 | i.iconfont.icon-bars, 949 | i.iconfont.icon-times { 950 | font-size: 1.25rem; 951 | } 952 | 953 | /*页脚样式*/ 954 | footer { 955 | text-align: center; 956 | height: 46px; 957 | backdrop-filter: blur(10px); 958 | background: rgb(0 0 0 / 25%); 959 | } 960 | 961 | .power { 962 | line-height: 46px; 963 | color: #eeeeee; 964 | animation: fade; 965 | -webkit-animation: fade 0.75s; 966 | -moz-animation: fade 0.75s; 967 | -o-animation: fade 0.75s; 968 | -ms-animation: fade 0.75s; 969 | } 970 | 971 | /*播放音乐时底栏歌词*/ 972 | #lrc { 973 | display: none; 974 | line-height: 46px; 975 | color: #eeeeee; 976 | animation: fade; 977 | -webkit-animation: fade 0.75s; 978 | -moz-animation: fade 0.75s; 979 | -o-animation: fade 0.75s; 980 | -ms-animation: fade 0.75s; 981 | } 982 | 983 | .lrc-show { 984 | display: flex; 985 | justify-content: center; 986 | align-items: center; 987 | } 988 | 989 | /*弹窗样式*/ 990 | .iziToast { 991 | backdrop-filter: blur(10px) !important; 992 | } 993 | 994 | .iziToast>.iziToast-body .iziToast-title { 995 | font-size: 16px !important; 996 | } 997 | 998 | .iziToast-body .iziToast-message { 999 | line-height: 18px !important; 1000 | } 1001 | 1002 | .iziToast>.iziToast-body .iziToast-message { 1003 | margin: 6px 0px 4px 0px !important; 1004 | } 1005 | 1006 | .iziToast:after { 1007 | box-shadow: none !important; 1008 | } 1009 | 1010 | .iziToast>.iziToast-body .iziToast-texts { 1011 | margin: 6px 6px !important; 1012 | display: flex !important; 1013 | align-items: center; 1014 | } 1015 | 1016 | .iziToast>.iziToast-body i { 1017 | margin-left: 6px; 1018 | margin-top: 10px; 1019 | } 1020 | 1021 | .iziToast-message { 1022 | word-break: break-all !important; 1023 | } 1024 | 1025 | .iziToast>.iziToast-close { 1026 | background: url(https://cdn.jsdelivr.net/gh/imsyy/file/pic/close.png) no-repeat 50% 50% !important; 1027 | background-size: 8px !important; 1028 | } 1029 | 1030 | /*滚动条样式*/ 1031 | ::-webkit-scrollbar { 1032 | width: 6px; 1033 | height: 6px; 1034 | background-color: transparent; 1035 | } 1036 | 1037 | ::-webkit-scrollbar-thumb { 1038 | border-radius: 10px; 1039 | background-color: #eeeeee; 1040 | } -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/favicon.ico -------------------------------------------------------------------------------- /font/MiSans-Regular.subset.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/font/MiSans-Regular.subset.ttf -------------------------------------------------------------------------------- /font/MiSans-Regular.subset.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/font/MiSans-Regular.subset.woff2 -------------------------------------------------------------------------------- /font/MiSans-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/font/MiSans-Regular.woff2 -------------------------------------------------------------------------------- /font/Pacifico-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/font/Pacifico-Regular.ttf -------------------------------------------------------------------------------- /font/UnidreamLED.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/font/UnidreamLED.ttf -------------------------------------------------------------------------------- /img/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/.DS_Store -------------------------------------------------------------------------------- /img/background1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background1.webp -------------------------------------------------------------------------------- /img/background10.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background10.webp -------------------------------------------------------------------------------- /img/background2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background2.webp -------------------------------------------------------------------------------- /img/background3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background3.webp -------------------------------------------------------------------------------- /img/background4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background4.webp -------------------------------------------------------------------------------- /img/background5.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background5.webp -------------------------------------------------------------------------------- /img/background6.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background6.webp -------------------------------------------------------------------------------- /img/background7.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background7.webp -------------------------------------------------------------------------------- /img/background8.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background8.webp -------------------------------------------------------------------------------- /img/background9.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/background9.webp -------------------------------------------------------------------------------- /img/icon/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/128.png -------------------------------------------------------------------------------- /img/icon/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/144.png -------------------------------------------------------------------------------- /img/icon/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/180.png -------------------------------------------------------------------------------- /img/icon/192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/192.png -------------------------------------------------------------------------------- /img/icon/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/32.png -------------------------------------------------------------------------------- /img/icon/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/48.png -------------------------------------------------------------------------------- /img/icon/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/512.png -------------------------------------------------------------------------------- /img/icon/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/72.png -------------------------------------------------------------------------------- /img/icon/96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/96.png -------------------------------------------------------------------------------- /img/icon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/apple-touch-icon.png -------------------------------------------------------------------------------- /img/icon/candle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/candle.png -------------------------------------------------------------------------------- /img/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/favicon.ico -------------------------------------------------------------------------------- /img/icon/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/logo.png -------------------------------------------------------------------------------- /img/icon/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/music.png -------------------------------------------------------------------------------- /img/icon/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/pause.png -------------------------------------------------------------------------------- /img/icon/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/play.png -------------------------------------------------------------------------------- /img/icon/warn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/img/icon/warn.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 棱镜之门 19 | 20 | 21 | 22 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 44 | 46 | 47 | 48 | 52 | 53 | 54 | 55 | 56 | 57 | 66 | 67 | 68 | 69 | 70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |

棱镜之门

81 | 加载中 82 |
83 |
84 |
85 |
86 | 87 |
88 | 89 |
90 |
91 | 92 |
93 |
94 | 95 |
96 |
97 |
98 |
99 | 100 |
101 | 102 |
103 | img 104 |
105 | slass 106 | .cc 107 |
108 |
109 | 110 |
111 |
112 | 113 |
Hello World !
欢迎来到通往镜世界的大门
115 | 116 |
117 |
118 | 119 | 140 |
141 |
142 | 143 | 146 |
147 |
148 | 149 |
150 |
151 | 152 |
153 | 154 |
155 | 156 |  打开音乐播放器 157 |
158 | 159 |
160 |
每一个人都应该明确自己的方向和位置 161 |
162 |
-「  」 163 |
164 |
165 |
166 | 167 |
168 |
169 |
170 |
音乐列表
171 |
回到一言
172 |
173 |
174 | 175 |
176 | 177 |
178 | 179 |
180 |
181 |
182 | 未播放音乐 183 |
184 | 190 |
191 |
192 |
193 |
194 |
195 | 196 |
197 |
198 | 2000 年 0 月 00 日 星期一
00:00:00 200 |
201 |
202 | 天气  203 | 加载失败  204 | 205 | 次数 206 | 超限 207 |
208 |
209 |
210 |
211 | 212 |
213 | 214 | 传送门~ 215 |
216 | 217 | 273 |
274 |
275 |
276 | 277 | 282 | 283 |
284 | 285 |
286 | 287 |
288 |
289 | 290 | 时间胶囊 291 | 292 |
293 |
294 |
295 |
今日已经度过了  小时
296 |
297 |
298 |
299 |
300 |
301 |
本周已经度过了  天
302 |
303 |
304 |
305 |
306 |
307 |
本月已经度过了  天
308 |
309 |
310 |
311 |
312 |
313 |
今年已经度过了  个月
314 |
315 |
316 |
317 |
318 |
319 |
320 | 321 | 我的传送门 322 | 323 |
324 | 325 | 349 | 373 |
374 | 375 | 483 |
484 |
485 | 486 | 503 |
504 | 505 | 512 | 513 | 516 | 517 | 518 | 519 | 520 | 521 | 524 | 525 | 526 | -------------------------------------------------------------------------------- /js/51LA.js: -------------------------------------------------------------------------------- 1 | !function(p){"use strict";!function(t){var s=window,e=document,i=p,c="".concat("https:"===e.location.protocol?"https://":"http://","sdk.51.la/js-sdk-pro.min.js"),n=e.createElement("script"),r=e.getElementsByTagName("script")[0];n.type="text/javascript",n.setAttribute("charset","UTF-8"),n.async=!0,n.src=c,n.id="LA_COLLECT",i.d=n;var o=function(){s.LA.ids.push(i)};s.LA?s.LA.ids&&o():(s.LA=p,s.LA.ids=[],o()),r.parentNode.insertBefore(n,r)}()}({id:"JsCfFWHIuL06wxPg",ck:"JsCfFWHIuL06wxPg"}); 2 | -------------------------------------------------------------------------------- /js/js.cookie.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * JavaScript Cookie v2.2.1 3 | * https://github.com/js-cookie/js-cookie 4 | * 5 | * Copyright 2006, 2015 Klaus Hartl & Fagner Brack 6 | * Released under the MIT license 7 | */ 8 | ; 9 | (function (factory) { 10 | var registeredInModuleLoader; 11 | if (typeof define === 'function' && define.amd) { 12 | define(factory); 13 | registeredInModuleLoader = true; 14 | } 15 | if (typeof exports === 'object') { 16 | module.exports = factory(); 17 | registeredInModuleLoader = true; 18 | } 19 | if (!registeredInModuleLoader) { 20 | var OldCookies = window.Cookies; 21 | var api = window.Cookies = factory(); 22 | api.noConflict = function () { 23 | window.Cookies = OldCookies; 24 | return api; 25 | }; 26 | } 27 | }(function () { 28 | function extend() { 29 | var i = 0; 30 | var result = {}; 31 | for (; i < arguments.length; i++) { 32 | var attributes = arguments[i]; 33 | for (var key in attributes) { 34 | result[key] = attributes[key]; 35 | } 36 | } 37 | return result; 38 | } 39 | 40 | function decode(s) { 41 | return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); 42 | } 43 | 44 | function init(converter) { 45 | function api() {} 46 | 47 | function set(key, value, attributes) { 48 | if (typeof document === 'undefined') { 49 | return; 50 | } 51 | 52 | attributes = extend({ 53 | path: '/' 54 | }, api.defaults, attributes); 55 | 56 | if (typeof attributes.expires === 'number') { 57 | attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5); 58 | } 59 | 60 | // We're using "expires" because "max-age" is not supported by IE 61 | attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; 62 | 63 | try { 64 | var result = JSON.stringify(value); 65 | if (/^[\{\[]/.test(result)) { 66 | value = result; 67 | } 68 | } catch (e) {} 69 | 70 | value = converter.write ? 71 | converter.write(value, key) : 72 | encodeURIComponent(String(value)) 73 | .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); 74 | 75 | key = encodeURIComponent(String(key)) 76 | .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) 77 | .replace(/[\(\)]/g, escape); 78 | 79 | var stringifiedAttributes = ''; 80 | for (var attributeName in attributes) { 81 | if (!attributes[attributeName]) { 82 | continue; 83 | } 84 | stringifiedAttributes += '; ' + attributeName; 85 | if (attributes[attributeName] === true) { 86 | continue; 87 | } 88 | 89 | // Considers RFC 6265 section 5.2: 90 | // ... 91 | // 3. If the remaining unparsed-attributes contains a %x3B (";") 92 | // character: 93 | // Consume the characters of the unparsed-attributes up to, 94 | // not including, the first %x3B (";") character. 95 | // ... 96 | stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; 97 | } 98 | 99 | return (document.cookie = key + '=' + value + stringifiedAttributes); 100 | } 101 | 102 | function get(key, json) { 103 | if (typeof document === 'undefined') { 104 | return; 105 | } 106 | 107 | var jar = {}; 108 | // To prevent the for loop in the first place assign an empty array 109 | // in case there are no cookies at all. 110 | var cookies = document.cookie ? document.cookie.split('; ') : []; 111 | var i = 0; 112 | 113 | for (; i < cookies.length; i++) { 114 | var parts = cookies[i].split('='); 115 | var cookie = parts.slice(1).join('='); 116 | 117 | if (!json && cookie.charAt(0) === '"') { 118 | cookie = cookie.slice(1, -1); 119 | } 120 | 121 | try { 122 | var name = decode(parts[0]); 123 | cookie = (converter.read || converter)(cookie, name) || 124 | decode(cookie); 125 | 126 | if (json) { 127 | try { 128 | cookie = JSON.parse(cookie); 129 | } catch (e) {} 130 | } 131 | 132 | jar[name] = cookie; 133 | 134 | if (key === name) { 135 | break; 136 | } 137 | } catch (e) {} 138 | } 139 | 140 | return key ? jar[key] : jar; 141 | } 142 | 143 | api.set = set; 144 | api.get = function (key) { 145 | return get(key, false /* read as raw */ ); 146 | }; 147 | api.getJSON = function (key) { 148 | return get(key, true /* read as json */ ); 149 | }; 150 | api.remove = function (key, attributes) { 151 | set(key, '', extend(attributes, { 152 | expires: -1 153 | })); 154 | }; 155 | 156 | api.defaults = {}; 157 | 158 | api.withConverter = init; 159 | 160 | return api; 161 | } 162 | 163 | return init(function () {}); 164 | })); -------------------------------------------------------------------------------- /js/lantern.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * china-lantern v1.6.0 3 | * (c) 2020-2021 fz6m 4 | * Released under the MIT License. 5 | */ 6 | ! function (t) { 7 | "function" == typeof define && define.amd ? define(t) : t() 8 | }((function () { 9 | "use strict"; 10 | ! function (t, e) { 11 | void 0 === e && (e = {}); 12 | let n = e.insertAt; 13 | if (t && "undefined" != typeof document) { 14 | let r = document.head || document.getElementsByTagName("head")[0], 15 | a = document.createElement("style"); 16 | a.type = "text/css", "top" === n && r.firstChild ? r.insertBefore(a, r.firstChild) : r.appendChild(a), a.styleSheet ? a.styleSheet.cssText = t : a.appendChild(document.createTextNode(t)) 17 | } 18 | }; 19 | let t; 20 | (t = document.createElement("div")).className = "j-china-lantern", t.innerHTML = '
', document.body.appendChild(t) 21 | })); -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | 作者: imsyy 3 | 主页:https://www.imsyy.top/ 4 | GitHub:https://github.com/imsyy/home 5 | 版权所有,请勿删除 6 | */ 7 | 8 | //弹窗样式 9 | iziToast.settings({ 10 | timeout: 10000, 11 | progressBar: false, 12 | close: false, 13 | closeOnEscape: true, 14 | position: 'topCenter', 15 | transitionIn: 'bounceInDown', 16 | transitionOut: 'flipOutX', 17 | displayMode: 'replace', 18 | layout: '1', 19 | backgroundColor: '#00000040', 20 | titleColor: '#efefef', 21 | messageColor: '#efefef', 22 | icon: 'Fontawesome', 23 | iconColor: '#efefef', 24 | }); 25 | 26 | /* 鼠标样式 */ 27 | const body = document.querySelector("body"); 28 | const element = document.getElementById("g-pointer-1"); 29 | const element2 = document.getElementById("g-pointer-2"); 30 | const halfAlementWidth = element.offsetWidth / 2; 31 | const halfAlementWidth2 = element2.offsetWidth / 2; 32 | 33 | function setPosition(x, y) { 34 | element2.style.transform = `translate(${x - halfAlementWidth2 + 1}px, ${y - halfAlementWidth2 + 1}px)`; 35 | } 36 | 37 | body.addEventListener('mousemove', (e) => { 38 | window.requestAnimationFrame(function () { 39 | setPosition(e.clientX, e.clientY); 40 | }); 41 | }); 42 | 43 | //移动端去除鼠标样式 44 | switch (true) { 45 | case navigator.userAgent.indexOf('Mobile') > 0: 46 | $('#g-pointer-2').css("display", "none"); 47 | } 48 | 49 | //加载完成后执行 50 | window.addEventListener('load', function () { 51 | 52 | //载入动画 53 | $('#loading-box').attr('class', 'loaded'); 54 | $('#bg').css("cssText", "transform: scale(1);filter: blur(0px);transition: ease 1.5s;"); 55 | $('.cover').css("cssText", "opacity: 1;transition: ease 1.5s;"); 56 | $('#section').css("cssText", "transform: scale(1) !important;opacity: 1 !important;filter: blur(0px) !important"); 57 | 58 | //用户欢迎 59 | setTimeout(function () { 60 | iziToast.show({ 61 | timeout: 2500, 62 | icon: false, 63 | title: hello, 64 | message: '欢迎来到我的主页' 65 | }); 66 | }, 800); 67 | 68 | //延迟加载音乐播放器 69 | let element = document.createElement("script"); 70 | element.src = "./js/music.js"; 71 | document.body.appendChild(element); 72 | 73 | //中文字体缓加载-此处写入字体源文件 74 | //先行加载简体中文子集,后续补全字集 75 | //由于压缩过后的中文字体仍旧过大,可转移至对象存储或 CDN 加载 76 | const font = new FontFace( 77 | "MiSans", 78 | "url(" + "./font/MiSans-Regular.woff2" + ")" 79 | ); 80 | document.fonts.add(font); 81 | 82 | }, false) 83 | 84 | setTimeout(function () { 85 | $('#loading-text').html("字体及文件加载可能需要一定时间") 86 | }, 3000); 87 | 88 | // 新春灯笼 ( 需要时可取消注释 ) 89 | // new_element=document.createElement("link"); 90 | // new_element.setAttribute("rel","stylesheet"); 91 | // new_element.setAttribute("type","text/css"); 92 | // new_element.setAttribute("href","./css/lantern.css"); 93 | // document.body.appendChild(new_element); 94 | 95 | // new_element=document.createElement("script"); 96 | // new_element.setAttribute("type","text/javascript"); 97 | // new_element.setAttribute("src","./js/lantern.js"); 98 | // document.body.appendChild(new_element); 99 | 100 | //获取一言 101 | fetch('https://v1.hitokoto.cn?max_length=24') 102 | .then(response => response.json()) 103 | .then(data => { 104 | $('#hitokoto_text').html(data.hitokoto) 105 | $('#from_text').html(data.from) 106 | }) 107 | .catch(console.error) 108 | 109 | let times = 0; 110 | $('#hitokoto').click(function () { 111 | if (times == 0) { 112 | times = 1; 113 | let index = setInterval(function () { 114 | times--; 115 | if (times == 0) { 116 | clearInterval(index); 117 | } 118 | }, 1000); 119 | fetch('https://v1.hitokoto.cn?max_length=24') 120 | .then(response => response.json()) 121 | .then(data => { 122 | $('#hitokoto_text').html(data.hitokoto) 123 | $('#from_text').html(data.from) 124 | }) 125 | .catch(console.error) 126 | } else { 127 | iziToast.show({ 128 | timeout: 1000, 129 | icon: "fa-solid fa-circle-exclamation", 130 | message: '你点太快了吧' 131 | }); 132 | } 133 | }); 134 | 135 | //获取天气 136 | //请前往 https://www.mxnzp.com/doc/list 申请 app_id 和 app_secret 137 | //请前往 https://dev.qweather.com/ 申请 key 138 | const add_id = "9eiulm"; // app_id 139 | const app_secret = "Y082TEpVaU1u"; // app_secret 140 | const key = "a0f0eda5c64" // key 141 | function getWeather() { 142 | fetch("https://www.mxnzp.com/api/ip/self?app_id=" + add_id + "&app_secret=" + app_secret) 143 | .then(response => response.json()) 144 | .then(data => { 145 | let str = data.data.city 146 | let city = str.replace(/市/g, '') 147 | $('#city_text').html(city); 148 | fetch("https://geoapi.qweather.com/v2/city/lookup?location=" + city + "&number=1&key=" + key) 149 | .then(response => response.json()) 150 | .then(location => { 151 | let id = location.location[0].id 152 | fetch("https://devapi.qweather.com/v7/weather/now?location=" + id + "&key=" + key) 153 | .then(response => response.json()) 154 | .then(weather => { 155 | $('#wea_text').html(weather.now.text) 156 | $('#tem_text').html(weather.now.temp + "°C ") 157 | $('#win_text').html(weather.now.windDir) 158 | $('#win_speed').html(weather.now.windScale + "级") 159 | }) 160 | }) 161 | }) 162 | .catch(console.error); 163 | } 164 | 165 | getWeather(); 166 | 167 | let wea = 0; 168 | $('#upWeather').click(function () { 169 | if (wea == 0) { 170 | wea = 1; 171 | let index = setInterval(function () { 172 | wea--; 173 | if (wea == 0) { 174 | clearInterval(index); 175 | } 176 | }, 60000); 177 | getWeather(); 178 | iziToast.show({ 179 | timeout: 2000, 180 | icon: "fa-solid fa-cloud-sun", 181 | message: '实时天气已更新' 182 | }); 183 | } else { 184 | iziToast.show({ 185 | timeout: 1000, 186 | icon: "fa-solid fa-circle-exclamation", 187 | message: '请稍后再更新哦' 188 | }); 189 | } 190 | }); 191 | 192 | //获取时间 193 | let t = null; 194 | t = setTimeout(time, 1000); 195 | 196 | function time() { 197 | clearTimeout(t); 198 | dt = new Date(); 199 | let y = dt.getYear() + 1900; 200 | let mm = dt.getMonth() + 1; 201 | let d = dt.getDate(); 202 | let weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; 203 | let day = dt.getDay(); 204 | let h = dt.getHours(); 205 | let m = dt.getMinutes(); 206 | let s = dt.getSeconds(); 207 | if (h < 10) { 208 | h = "0" + h; 209 | } 210 | if (m < 10) { 211 | m = "0" + m; 212 | } 213 | if (s < 10) { 214 | s = "0" + s; 215 | } 216 | $("#time").html(y + " 年 " + mm + " 月 " + d + " 日 " + "" + weekday[day] + "
" + "" + h + ":" + m + ":" + s + ""); 217 | t = setTimeout(time, 1000); 218 | } 219 | 220 | //链接提示文字 221 | $("#social").mouseover(function () { 222 | $("#social").css({ 223 | "background": "rgb(0 0 0 / 25%)", 224 | 'border-radius': '6px', 225 | "backdrop-filter": "blur(5px)" 226 | }); 227 | $("#link-text").css({ 228 | "display": "block", 229 | }); 230 | }).mouseout(function () { 231 | $("#social").css({ 232 | "background": "none", 233 | "border-radius": "6px", 234 | "backdrop-filter": "none" 235 | }); 236 | $("#link-text").css({ 237 | "display": "none" 238 | }); 239 | }); 240 | 241 | $("#github").mouseover(function () { 242 | $("#link-text").html("去 Github 看看"); 243 | }).mouseout(function () { 244 | $("#link-text").html("通过这里联系我"); 245 | }); 246 | $("#qq").mouseover(function () { 247 | $("#link-text").html("有什么事吗"); 248 | }).mouseout(function () { 249 | $("#link-text").html("通过这里联系我"); 250 | }); 251 | $("#email").mouseover(function () { 252 | $("#link-text").html("来封 Email"); 253 | }).mouseout(function () { 254 | $("#link-text").html("通过这里联系我"); 255 | }); 256 | $("#bilibili").mouseover(function () { 257 | $("#link-text").html("来 B 站看看 ~"); 258 | }).mouseout(function () { 259 | $("#link-text").html("通过这里联系我"); 260 | }); 261 | $("#telegram").mouseover(function () { 262 | $("#link-text").html("你懂的 ~"); 263 | }).mouseout(function () { 264 | $("#link-text").html("通过这里联系我"); 265 | }); 266 | 267 | //自动变灰 268 | let myDate = new Date; 269 | let mon = myDate.getMonth() + 1; 270 | let date = myDate.getDate(); 271 | let days = ['4.4', '5.12', '7.7', '9.9', '9.18', '12.13']; 272 | for (let day of days) { 273 | let d = day.split('.'); 274 | if (mon == d[0] && date == d[1]) { 275 | document.write( 276 | '' 277 | ); 278 | $("#change").html("Silence in silence"); 279 | $("#change1").html("今天是中国国家纪念日,全站已切换为黑白模式"); 280 | window.addEventListener('load', function () { 281 | setTimeout(function () { 282 | iziToast.show({ 283 | timeout: 14000, 284 | icon: "fa-solid fa-clock", 285 | message: '今天是中国国家纪念日' 286 | }); 287 | }, 3800); 288 | }, false); 289 | } 290 | } 291 | 292 | //更多页面切换 293 | let shoemore = false; 294 | $('#switchmore').on('click', function () { 295 | shoemore = !shoemore; 296 | if (shoemore && $(document).width() >= 990) { 297 | $('#container').attr('class', 'container mores'); 298 | $("#change").html("Oops !"); 299 | $("#change1").html("哎呀,这都被你发现了( 再点击一次可关闭 )"); 300 | } else { 301 | $('#container').attr('class', 'container'); 302 | $("#change").html("Hello World !"); 303 | $("#change1").html("欢迎来到镜世界"); 304 | } 305 | }); 306 | 307 | //更多页面关闭按钮 308 | $('#close').on('click', function () { 309 | $('#switchmore').click(); 310 | }); 311 | 312 | //移动端菜单栏切换 313 | let switchmenu = false; 314 | $('#switchmenu').on('click', function () { 315 | switchmenu = !switchmenu; 316 | if (switchmenu) { 317 | $('#row').attr('class', 'row menus'); 318 | $("#menu").html(""); 319 | } else { 320 | $('#row').attr('class', 'row'); 321 | $("#menu").html(""); 322 | } 323 | }); 324 | 325 | //更多弹窗页面 326 | $('#openmore').on('click', function () { 327 | $('#box').css("display", "block"); 328 | $('#row').css("display", "none"); 329 | $('#more').css("cssText", "display:none !important"); 330 | }); 331 | $('#closemore').on('click', function () { 332 | $('#box').css("display", "none"); 333 | $('#row').css("display", "flex"); 334 | $('#more').css("display", "flex"); 335 | }); 336 | 337 | //监听网页宽度 338 | window.addEventListener('load', function () { 339 | window.addEventListener('resize', function () { 340 | //关闭移动端样式 341 | if (window.innerWidth >= 600) { 342 | $('#row').attr('class', 'row'); 343 | $("#menu").html(""); 344 | //移除移动端切换功能区 345 | $('#rightone').attr('class', 'row rightone'); 346 | } 347 | 348 | if (window.innerWidth <= 990) { 349 | //移动端隐藏更多页面 350 | $('#container').attr('class', 'container'); 351 | $("#change").html("Hello World !"); 352 | $("#change1").html("欢迎来到菱镜之门"); 353 | 354 | //移动端隐藏弹窗页面 355 | $('#box').css("display", "none"); 356 | $('#row').css("display", "flex"); 357 | $('#more').css("display", "flex"); 358 | } 359 | }) 360 | }) 361 | 362 | //移动端切换功能区 363 | let changemore = false; 364 | $('#changemore').on('click', function () { 365 | changemore = !changemore; 366 | if (changemore) { 367 | $('#rightone').attr('class', 'row menus mobile'); 368 | } else { 369 | $('#rightone').attr('class', 'row menus'); 370 | } 371 | }); 372 | 373 | //更多页面显示关闭按钮 374 | $("#more").hover(function () { 375 | $('#close').css("display", "block"); 376 | }, function () { 377 | $('#close').css("display", "none"); 378 | }) 379 | 380 | //屏蔽右键 381 | document.oncontextmenu = function () { 382 | iziToast.show({ 383 | timeout: 2000, 384 | icon: "fa-solid fa-circle-exclamation", 385 | message: '为了浏览体验,本站禁用右键' 386 | }); 387 | return false; 388 | } 389 | 390 | //控制台输出 391 | console.clear(); 392 | let styleTitle1 = ` 393 | font-size: 20px; 394 | font-weight: 600; 395 | color: rgb(244,167,89); 396 | ` 397 | let styleTitle2 = ` 398 | font-size:12px; 399 | color: rgb(244,167,89); 400 | ` 401 | let styleContent = ` 402 | color: rgb(30,152,255); 403 | ` 404 | let title1 = '镜' 405 | let title2 = ` 406 | 407 | ` 408 | let content = ` 409 | 版 本 号:3.4 410 | 更新日期:2022-07-24 411 | 412 | 主页: https://www.slass.cc 413 | Github: https://github.com/poshoi 414 | ` 415 | console.log(`%c${title1} %c${title2} 416 | %c${content}`, styleTitle1, styleTitle2, styleContent) -------------------------------------------------------------------------------- /js/music.js: -------------------------------------------------------------------------------- 1 | /* 2 | 音乐信息 3 | 4 | 感谢 @武恩赐 提供的 MetingAPI 5 | https://api.wuenci.com/meting/api/ 6 | 7 | 版权所有,请勿删除 8 | */ 9 | let server = "netease"; //netease: 网易云音乐; tencent: QQ音乐; kugou: 酷狗音乐; xiami: 虾米; kuwo: 酷我 10 | let type = "playlist"; //song: 单曲; playlist: 歌单; album: 唱片 11 | let id = "7317097693"; //封面 ID / 单曲 ID / 歌单 ID 12 | 13 | $.ajax({ 14 | url: "https://api.wuenci.com/meting/api/?server=" + server + "&type=" + type + "&id=" + id, 15 | type: "GET", 16 | dataType: "JSON", 17 | success: function (data) { 18 | const ap = new APlayer({ 19 | container: document.getElementById('aplayer'), 20 | order: 'random', 21 | preload: 'auto', 22 | listMaxHeight: '336px', 23 | volume: '0.5', 24 | mutex: true, 25 | lrcType: 3, 26 | audio: data, 27 | }); 28 | 29 | /* 底栏歌词 */ 30 | setInterval(function () { 31 | $("#lrc").html(" " + $(".aplayer-lrc-current").text() + " "); 32 | }, 500); 33 | 34 | /* 音乐通知及控制 */ 35 | ap.on('play', function () { 36 | music = $(".aplayer-title").text() + $(".aplayer-author").text(); 37 | iziToast.info({ 38 | timeout: 4000, 39 | icon: "fa-solid fa-circle-play", 40 | displayMode: 'replace', 41 | message: music 42 | }); 43 | $("#play").html(""); 44 | $("#music-name").html($(".aplayer-title").text() + $(".aplayer-author").text()); 45 | if ($(document).width() >= 990) { 46 | $('.power').css("cssText", "display:none"); 47 | $('#lrc').css("cssText", "display:block !important"); 48 | }; 49 | // Notification.requestPermission().then(res => { 50 | // console.log(res) 51 | // }); 52 | // new Notification('音乐通知', { 53 | // body: '正在播放:' + music, 54 | // tag: 1 55 | // }); 56 | }); 57 | 58 | ap.on('pause', function () { 59 | $("#play").html(""); 60 | if ($(document).width() >= 990) { 61 | $('#lrc').css("cssText", "display:none !important"); 62 | $('.power').css("cssText", "display:block"); 63 | } 64 | }); 65 | 66 | $("#music").hover(function () { 67 | $('.music-text').css("display", "none"); 68 | $('.music-volume').css("display", "flex"); 69 | }, function () { 70 | $('.music-text').css("display", "block"); 71 | $('.music-volume').css("display", "none"); 72 | }) 73 | 74 | /* 一言与音乐切换 */ 75 | $('#open-music').on('click', function () { 76 | $('#hitokoto').css("display", "none"); 77 | $('#music').css("display", "flex"); 78 | }); 79 | 80 | $("#hitokoto").hover(function () { 81 | $('#open-music').css("display", "flex"); 82 | }, function () { 83 | $('#open-music').css("display", "none"); 84 | }) 85 | 86 | $('#music-close').on('click', function () { 87 | $('#music').css("display", "none"); 88 | $('#hitokoto').css("display", "flex"); 89 | }); 90 | 91 | /* 上下曲 */ 92 | $('#play').on('click', function () { 93 | ap.toggle(); 94 | $("#music-name").html($(".aplayer-title").text() + $(".aplayer-author").text()); 95 | }); 96 | 97 | $('#last').on('click', function () { 98 | ap.skipBack(); 99 | ap.play(); 100 | $("#music-name").html($(".aplayer-title").text() + $(".aplayer-author").text()); 101 | }); 102 | 103 | $('#next').on('click', function () { 104 | ap.skipForward(); 105 | ap.play(); 106 | $("#music-name").html($(".aplayer-title").text() + $(".aplayer-author").text()); 107 | }); 108 | 109 | window.onkeydown = function (e) { 110 | if (e.keyCode == 32) { 111 | ap.toggle(); 112 | } 113 | } 114 | 115 | /* 打开音乐列表 */ 116 | $('#music-open').on('click', function () { 117 | if ($(document).width() >= 990) { 118 | $('#box').css("display", "block"); 119 | $('#row').css("display", "none"); 120 | $('#more').css("cssText", "display:none !important"); 121 | } 122 | }); 123 | 124 | //音量调节 125 | $("#volume").on('input propertychange touchend', function () { 126 | let x = $("#volume").val(); 127 | ap.volume(x, true); 128 | if (x == 0) { 129 | $("#volume-ico").html(""); 130 | } else if (x > 0 && x <= 0.3) { 131 | $("#volume-ico").html(""); 132 | } else if (x > 0.3 && x <= 0.6) { 133 | $("#volume-ico").html(""); 134 | } else { 135 | $("#volume-ico").html(""); 136 | } 137 | }); 138 | }, 139 | error: function () { 140 | setTimeout(function () { 141 | iziToast.info({ 142 | timeout: 8000, 143 | icon: "fa-solid fa-circle-exclamation", 144 | displayMode: 'replace', 145 | message: '音乐播放器加载失败' 146 | }); 147 | }, 3800); 148 | } 149 | }) -------------------------------------------------------------------------------- /js/set.js: -------------------------------------------------------------------------------- 1 | /* 2 | 作者: imsyy 3 | 主页:https://www.imsyy.top/ 4 | GitHub:https://github.com/imsyy/home 5 | 版权所有,请勿删除 6 | */ 7 | 8 | /* 自定义配置 */ 9 | /* 尚未完善 */ 10 | $(function () { 11 | let url = "../setting.json" 12 | $.getJSON( 13 | url, 14 | function (data) { 15 | /* 页头数据 */ 16 | $('title').text(data.title); 17 | $('#loading-title').html(data.title); 18 | $("meta[name='description']").attr('content', data.description); 19 | $("meta[name='keywords']").attr('content', data.keywords); 20 | $("meta[name='author']").attr('content', data.author); 21 | /* 基础信息 */ 22 | $("#logo-img").attr("src", data.logo_img); 23 | $('#logo-text-1').html(data.logo_text_1); 24 | $('#logo-text-2').html("." + data.logo_text_2); 25 | $('#logo-title-other').html(data.logo_text_1); 26 | $('#logo-title-other-small').html("." + data.logo_text_2); 27 | $('#logo-text-small').html(data.logo_text_1 + "." + data.logo_text_2); 28 | /* 社交链接 */ 29 | $('#github').attr('href', "https://github.com/" + data.github); 30 | $('#qq').attr('href', "https://wpa.qq.com/msgrd?v=3&uin=" + data.qq + "&site=qq&menu=yes"); 31 | $('#email').attr('href', "mailto:" + data.email); 32 | $('#bilibili').attr('href', "https://space.bilibili.com/" + data.bilibili); 33 | $('#telegram').attr('href', "https://t.me/" + data.telegram); 34 | /* 快捷链接 */ 35 | $('#link-url-1').attr('href', data.link_1[0]); 36 | $('#link-icon-1').attr('class', data.link_1[1]); 37 | $('#link-name-1').html(data.link_1[2]); 38 | $('#link-url-2').attr('href', data.link_2[0]); 39 | $('#link-icon-2').attr('class', data.link_2[1]); 40 | $('#link-name-2').html(data.link_2[2]); 41 | $('#link-url-3').attr('href', data.link_3[0]); 42 | $('#link-icon-3').attr('class', data.link_3[1]); 43 | $('#link-name-3').html(data.link_3[2]); 44 | $('#link-url-4').attr('href', data.link_4[0]); 45 | $('#link-icon-4').attr('class', data.link_4[1]); 46 | $('#link-name-4').html(data.link_4[2]); 47 | $('#link-url-5').attr('href', data.link_5[0]); 48 | $('#link-icon-5').attr('class', data.link_5[1]); 49 | $('#link-name-5').html(data.link_5[2]); 50 | $('#link-url-6').attr('href', data.link_6[0]); 51 | $('#link-icon-6').attr('class', data.link_6[1]); 52 | $('#link-name-6').html(data.link_6[2]); 53 | //页脚版权 54 | $('#power-text').html(data.Copyright_text); 55 | $('#beian').html("& " + data.beian); 56 | } 57 | ) 58 | }); 59 | 60 | // 背景图片 Cookies 61 | function setBgImg(bg_img) { 62 | if (bg_img) { 63 | Cookies.set('bg_img', bg_img, { 64 | expires: 36500 65 | }); 66 | return true; 67 | } 68 | return false; 69 | }; 70 | 71 | // 获取背景图片 Cookies 72 | function getBgImg() { 73 | let bg_img_local = Cookies.get('bg_img'); 74 | if (bg_img_local && bg_img_local !== "{}") { 75 | return JSON.parse(bg_img_local); 76 | } else { 77 | setBgImg(bg_img_preinstall); 78 | return bg_img_preinstall; 79 | } 80 | } 81 | 82 | let bg_img_preinstall = { 83 | "type": "1", // 1:默认背景 2:每日一图 3:随机风景 4:随机动漫 84 | "2": "https://api.dujin.org/bing/1920.php", // 每日一图 85 | "3": "https://api.ixiaowai.cn/gqapi/gqapi.php", // 随机风景 86 | "4": "https://api.ixiaowai.cn/api/api.php" // 随机动漫 87 | }; 88 | 89 | // 更改背景图片 90 | function setBgImgInit() { 91 | let bg_img = getBgImg(); 92 | $("input[name='wallpaper-type'][value=" + bg_img["type"] + "]").click(); 93 | 94 | switch (bg_img["type"]) { 95 | case "1": 96 | $('#bg').attr('src', `./img/background${1 + ~~(Math.random() * 10)}.webp`) //随机默认壁纸 97 | break; 98 | case "2": 99 | $('#bg').attr('src', bg_img_preinstall[2]); //必应每日 100 | break; 101 | case "3": 102 | $('#bg').attr('src', bg_img_preinstall[3]); //随机风景 103 | break; 104 | case "4": 105 | $('#bg').attr('src', bg_img_preinstall[4]); //随机动漫 106 | break; 107 | } 108 | }; 109 | 110 | $(document).ready(function () { 111 | // 壁纸数据加载 112 | setBgImgInit(); 113 | // 设置背景图片 114 | $("#wallpaper").on("click", ".set-wallpaper", function () { 115 | let type = $(this).val(); 116 | let bg_img = getBgImg(); 117 | bg_img["type"] = type; 118 | iziToast.show({ 119 | icon: "fa-solid fa-image", 120 | timeout: 2500, 121 | message: '壁纸设置成功,刷新后生效', 122 | }); 123 | setBgImg(bg_img); 124 | }); 125 | }); -------------------------------------------------------------------------------- /js/time.js: -------------------------------------------------------------------------------- 1 | function init_life_time() { 2 | function getAsideLifeTime() { 3 | /* 当前时间戳 */ 4 | let nowDate = +new Date(); 5 | /* 今天开始时间戳 */ 6 | let todayStartDate = new Date(new Date().toLocaleDateString()).getTime(); 7 | /* 今天已经过去的时间 */ 8 | let todayPassHours = (nowDate - todayStartDate) / 1000 / 60 / 60; 9 | /* 今天已经过去的时间比 */ 10 | let todayPassHoursPercent = (todayPassHours / 24) * 100; 11 | $('#dayProgress .date-text span').html(parseInt(todayPassHours)); 12 | $('#dayProgress .progress .progress-bar').css('width', parseInt(todayPassHoursPercent) + '%'); 13 | $('#dayProgress .progress .progress-bar').html(parseInt(todayPassHoursPercent) + '%'); 14 | /* 当前周几 */ 15 | let weeks = { 16 | 0: 7, 17 | 1: 1, 18 | 2: 2, 19 | 3: 3, 20 | 4: 4, 21 | 5: 5, 22 | 6: 6 23 | }; 24 | let weekDay = weeks[new Date().getDay()]; 25 | let weekDayPassPercent = (weekDay / 7) * 100; 26 | $('#weekProgress .date-text span').html(weekDay); 27 | $('#weekProgress .progress .progress-bar').css('width', parseInt(weekDayPassPercent) + '%'); 28 | $('#weekProgress .progress .progress-bar').html(parseInt(weekDayPassPercent) + '%'); 29 | /* 月 */ 30 | let year = new Date().getFullYear(); 31 | let date = new Date().getDate(); 32 | let month = new Date().getMonth() + 1; 33 | let monthAll = new Date(year, month, 0).getDate(); 34 | let monthPassPercent = (date / monthAll) * 100; 35 | $('#monthProgress .date-text span').html(date); 36 | $('#monthProgress .progress .progress-bar').css('width', parseInt(monthPassPercent) + '%'); 37 | $('#monthProgress .progress .progress-bar').html(parseInt(monthPassPercent) + '%'); 38 | /* 年 */ 39 | let yearPass = (month / 12) * 100; 40 | $('#yearProgress .date-text span').html(month); 41 | $('#yearProgress .progress .progress-bar').css('width', parseInt(yearPass) + '%'); 42 | $('#yearProgress .progress .progress-bar').html(parseInt(yearPass) + '%'); 43 | } 44 | getAsideLifeTime(); 45 | setInterval(() => { 46 | getAsideLifeTime(); 47 | }, 1000); 48 | } 49 | init_life_time() 50 | 51 | now = new Date(), hour = now.getHours() 52 | if (hour < 6) { 53 | var hello = "凌晨好"; 54 | } else if (hour < 9) { 55 | var hello = "早上好"; 56 | } else if (hour < 12) { 57 | var hello = "上午好"; 58 | } else if (hour < 14) { 59 | var hello = "中午好"; 60 | } else if (hour < 17) { 61 | var hello = "下午好"; 62 | } else if (hour < 19) { 63 | var hello = "傍晚好"; 64 | } else if (hour < 22) { 65 | var hello = "晚上好"; 66 | } else { 67 | var hello = "夜深了"; 68 | } -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | {"name":"棱镜之门","short_name":"棱镜之门","description":"通往镜世界的大门","display":"standalone","start_url":"/","theme_color":"#424242","background_color":"#424242","icons":[{"src":"img/icon/48.png","sizes":"48x48","type":"image/png"},{"src":"img/icon/72.png","sizes":"72x72","type":"image/png"},{"src":"img/icon/96.png","sizes":"96x96","type":"image/png"},{"src":"img/icon/128.png","sizes":"128x128","type":"image/png"},{"src":"img/icon/144.png","sizes":"144x144","type":"image/png"},{"src":"img/icon/192.png","sizes":"192x192","type":"image/png"},{"src":"img/icon/512.png","sizes":"512x512","type":"image/png"}]} -------------------------------------------------------------------------------- /old/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/old/.DS_Store -------------------------------------------------------------------------------- /old/css/font.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family:'EngraversOldEnglishBT-Bold'; 3 | src: url('//cdn.webfont.youziku.com/webfonts/nomal/123918/33195/5d21f88af629d8080c5960eb.gif?r=110901002758'); 4 | src: url('//cdn.webfont.youziku.com/webfonts/nomal/123918/33195/5d21f88af629d8080c5960eb.gif?r=110901002758?#iefix') format('embedded-opentype'), url('//cdn.webfont.youziku.com/webfonts/nomal/123918/33195/5d21f88af629d8080c5960eb.png?r=110901002758') format('woff2'), url('//cdn.webfont.youziku.com/webfonts/nomal/123918/33195/5d21f88af629d8080c5960eb.bmp?r=110901002758') format('woff'); 5 | font-weight: normal; 6 | font-style: normal; 7 | } -------------------------------------------------------------------------------- /old/css/iconfont.css: -------------------------------------------------------------------------------- 1 | @font-face {font-family: "iconfont"; 2 | src: url('//at.alicdn.com/t/font_1923666_2o4ez0t5t64.eot?t=1597068283360'); /* IE9 */ 3 | src: url('//at.alicdn.com/t/font_1923666_2o4ez0t5t64.eot?t=1597068283360#iefix') format('embedded-opentype'), /* IE6-IE8 */ 4 | url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAygAAsAAAAAFQgAAAxSAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCFCgqaDJRUATYCJANECyQABCAFhG0HgUEbYRFRlFBWMtkX2DbsyRi24w5jw9hhxnUCAlAAAADABxRQQMEpHr7f739rH7nfTJMgXvFuFiLTIUHqj+ShUpJn/lr77RfzHZp+USCZJq2cvRVO2dvDMrRMSoQIoTE8bfPf3WHdTUElRIxqdENlsrI50M1eRLCA/W/B1tBmLMtYpK6PY9Ftmg/89wABgM3/fz9X/0OsiUV9mIZCjV+n92OubQlLhEZdSKpveNsa0UITa0TrkVR2SCjgNkZ16IWeTqDTrC2hq6fXdyip0BWBea85VVEyUaNURIf28qbAYRkPfQBm2tM7eBDw3nv8+Cci2klqpp/p5tMTA+3/9LKVdEiqIH8C2XBNYLWRsQ0prPipsPIjKEOOjehcSvEWMKpI/szmZ9Zh2YaRM5/0+Pqy9RA/PWuwk65eGNW1ZhAgHXr0K+jUq02xrhUaWZfuw/jliQal7CZDf4z2Qz9ZeXTwM/Lo4WfiqiGjSh+gQZVOQBuq9ALaoZCFDlQpgGUoDAWbqFIBe1AA3IDCFPAJVboAX1GlG/Afcqj904Lw3JQDjoNFyBZUBhGq95AuvvGU8TW0FBXy5IjZYtFZRkpZneqxeFItFkelaFm7K2a7RzO95JVWibZb6+VCrDvZ7Gkz1lWP+NLJKik9USlnioT25YerZaypGsXMSR3SHkXg1Mmdij5ZwJQuucSm5Zi0x5vaHj9Mbx4vW0E/NQeg61H0cSB9bx533yVKurJR0QmkLaic6AgKgoO3d/rHz+Ye7XMNRVzqArpIVK4P1GggWRcqb6Ers4QieVtOb29Xy2yVvz9uJOjbolrKyoYjgd2+mrclSq1Ux+gZoTFAMjWzq6VUyNrayjrqoddPkktQsUbmTqELUVGX16QeSBk4ShBC2GjEMd1hxVGOteMD3/ZuDmYyiRGSLLCR9zqON/T5Ult72PnaY15TcKGoVGz7Qqiiaw95yduYHV5tRxzVTIMvpmCoOhntOzm67d7t3SyNxvRAxRBrjNmYajujx8RqHnHAp82gAsi6XPQudZBMrCbFB43pJrERbzdhW9BtBGypU02Q1q/Dr8ULV+jBAdBKGYQQlYvUUAsp0pMJyjYJSYrmy9AfaRqLi0ymsrYuWTemadVJtS3iqGO8wruRXDiCNwrfOshkEik6pR1oyxFHw9GSloYt7d4KpmmqSnHOt07vs6ylg7Fc3UafdIxMmKJucSCAsLYHs1X0uUpMRhx07mZ3GoWosiuEELYeZqsYWkK4jwxAO4gYknTUsAxHfUnRtg4mSpoCDXsDJyNbSsFwMWZWgAojUAQrQcViDFKfhDXUYOKwUHWLV8cuh12EA3EVhqqdxdJc9sRwI0DpHQ2AjhEE3aGGECqL/YopWAdNkXsjcZam2QUS+dW7YlDdDuZCIFWiqFwNQfoTPmomTBAigtwT/+GKeESmwTCFCgDpbu/zRsmyllpvPF+331eMtx7lFBt6hZOUdKH0nmtTa1gLNSq65MaTkm5TjaZckozAdm6Kan/0JVIsEJCP8YMDgTX9UYoB35orEilBLIeQqWZBhjqf9rMDgd2u9ZBsT4ChybHtyqZ4nZHz1cyTJvDSNrA7djnXONf6d54/7d3hpLzhXT5tjvpZTkfldKVKxbgxXQzd4f0bm8oCUrqSSeoxYpkpSmE0LjltdG8g+GdIj2aT+NSXmMQkubxO77I85hvtonf49V/A0ijlOVTvGLEnYv7+xBuN4apW7LRJYBKfIdPOmmKPmrgaZ9w52IjXuUgIgtdPAMKIn1YIemoykR685TPkZDAMshaqtHQlgQpFuM4mrbnzqNR7vncH3/q87e/r73crL94VSajUdz7g/IxFC0SJg4mTRyQljZjsN4oWLCI1gNhrdxMaUmNSG+hjkTGRjpxYWZf3h5clNXhawahnjCcKW3k6cphmlwYPTxGTvZEegLZw/gDX9yMmMMMKGawM539eUbujQPdHUIuUuvE/wl0fPi7mJ3PYPhfbB1fbsP5hltX8e5NTktPB2FEVePYHs/S/m8LCwVlQBaXOipw/LwgY11el8aKHNwjAZ/19XnzYxYI5y/jO7pl3PB+I7O6EpYQNUEe+mJzEyj5q5wpicozd48bp2ZFs3dq1UrPTXuHmmbCky8rsHgWVlECCTiitpJh35GhhE0w1V/i6yLIHGUxBvieIoLRo3Ob1jl4B8C40tWHdpkhHf3GQx6bDddRMwtdCTcgYGLuklCh19Wba3ZrlH2TVB2AmjYIMS4CWP9jkcf2LrZQ2GrIv583rYIHwe34pyCqI39z1uYzeMS0Mev5l8Edz3cyqB383yOOn8tP5NiWc9E3jPZLH2RYgQjjXLnFqVJIDH5uUx+fPMPPXL6X8mz5lS++dGy8+fz0N8LjhVHeQbpcFaNnp9mBh3ibziLRzfrmvZmIgg/eCUk7sViO1yKXdSDlS4XxqLZwCP1qS7DorJSx3zfM1tErvKrtr1d8436ofwLEA1h7CSHar+trdDh9Bfl2nNIIJE9S58YHl+vRxtukII/xiKKy6fnrcSof3oe8dNmfGxWdw5sJvgtyD3sDUDT+df60HL0O0TO2x2pXyklg32M2vN6G/gWo4P4HHKwbp+Snn9QCMqQavwKA73X0QALfcorngYCt8wIyZZi2P1wfkmpXo8lzG8iKlmlOVHE6+90igHOfcR++zA6syGRR6czhLn2jm8SJdxubpSswCMuP1G6zTfMwsDxxpBdzjG0c6ZS3LUm/EY/l4XBzj/sm0AS0iRmap6FYB2l2/I2i8AyupoMn/wdNRNl7CzeMRP7ztBc39ZPzVZKgU8DwabcOemLH70GQ6f8bBT9wcfpxHLN2fbdW/O8v35mCm4UCB3b1uWLJu7TbPA1awNw0MXbjloGWg1THLYVTGpf0aqXlKcW4KnAqRdFBpngoabcGLjOX/KUv3r5f9EwoB93FQgmz2DKdlb0eK2eU61xWrPuxe/XFm/e8k2aY9e9ZMtqQpKRYw/65v4SSQpNwxFcTvKUKso7Mow2ZY1McmR6RbtAenjAb5ghV5qSx8KpT9QwL2B7f7pgmE51ZuRdldtstmTK3a/qGKcHXnrZFxQSIkHRVQnrtgbnYK44R6iZWE9Yt6bUd67NiGI8Eeq6Zudxr4f/zh+oI5C+aU/1ilm9k86LR92ioIu9A4Jm5c/SON52mCxgwavm8L5/xnzGpBctyUyPDvY+cWTE6oZNA+HheiS9QnUhhzc3IWBJaDNK7zfO5kZXAyd77zEpN26VAzd7LzfOC51YknEJhRrCy8rDQBnSGL9juhmTMhW5bJyLOYpBkzoUwafxz1sauvRYRVoavSPtOns6BvzoZhY8qniXiuVO6zTzZLOt2nV4Uu4M2yXem27LfnkjHcTBvZfLB1PrKA8fY77Qnc5TVHlhfr9HpoQ/bCyiXDa1xAPOBMDMyzXphkL+CsmQudlJzc4DRwbWAuc4XMfgEqoJhuOORPn5rPWHXewg91u8S7JOtH3W3DCyF+LYSkNEMtEP+M2wbeBrB6SDq9B0mGM73YXnhtbA98V9sv5H8AhhqyRyYRPWtcQ2prRW7C3wEY6rMNKUHKNTuQkEl/AQQMUdovREFiABh65TMyFinXHUeSR7bQIgXJtqdI5J+UIaB+7CwopiZ+tcR+uPpvixf9pphhmtf0ZPo+YAng9yWAv6QqyuMK6o9Ukei1thRpk4VCxOBI1eNiDnuHhpIi/t4dsZWMK86hJO80dvGn1DHob9qKkRdyU2hP8CxO2szgrN0yKqHbuOpyjBvtLuBOW86cdxkiRETpwKYvAod+3zjp9R1n/X5QCf3F1ah/3OiPjDvdj4qHXVbjRfpIgCrBwNo75rrrELNepv35N0ADSxVxiZf8AMLn/XgyHKfHz8ABMYQV/4VOpSSYCNfGp8TZwLJc7An3CXQ5ZFJ6e6MRKbI61F0bpV0hAJV0shswzXtpTudykKOldObhbwAqYFGJim3l0g+A4OPqYxND4wboTOk02nYpS30vqClJNhHYWiu4bNgp2QQsY8SFecX6ngCdNMQ6DHn2jEhVpKlyOL1o33ul27ejTjgQKXKUqNFEW7RHR3RGV7yYvIve6Iv+0EBoECUfONSC7cCLezRdJGpxX6Y0zlr1k2Rwc+KUSxZoiVfgb9yZxJ7YKrfCz8+xD8ZZELMDn+vJO7CACtVOyFcuJYgkC1RNdXZ2Eo8czXKpnwke9Upik8PUe0QIAA==') format('woff2'), 5 | url('//at.alicdn.com/t/font_1923666_2o4ez0t5t64.woff?t=1597068283360') format('woff'), 6 | url('//at.alicdn.com/t/font_1923666_2o4ez0t5t64.ttf?t=1597068283360') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ 7 | url('//at.alicdn.com/t/font_1923666_2o4ez0t5t64.svg?t=1597068283360#iconfont') format('svg'); /* iOS 4.1- */ 8 | } 9 | 10 | .iconfont { 11 | font-family: "iconfont" !important; 12 | font-size: 16px; 13 | font-style: normal; 14 | -webkit-font-smoothing: antialiased; 15 | -moz-osx-font-smoothing: grayscale; 16 | } 17 | 18 | .icon-angle-up:before { 19 | content: "\e9b3"; 20 | } 21 | 22 | .icon-ngleup:before { 23 | content: "\e624"; 24 | } 25 | 26 | .icon-list:before { 27 | content: "\e647"; 28 | } 29 | 30 | .icon-bilibili1:before { 31 | content: "\e609"; 32 | } 33 | 34 | .icon-bilibili:before { 35 | content: "\e62a"; 36 | } 37 | 38 | .icon-github:before { 39 | content: "\e62f"; 40 | } 41 | 42 | .icon-weixin1:before { 43 | content: "\e608"; 44 | } 45 | 46 | .icon-email:before { 47 | content: "\e6f5"; 48 | } 49 | 50 | .icon-qq:before { 51 | content: "\e600"; 52 | } 53 | 54 | .icon-zhihu:before { 55 | content: "\e606"; 56 | } 57 | 58 | .icon-music:before { 59 | content: "\e6ba"; 60 | } 61 | 62 | .icon-Telegram:before { 63 | content: "\e6bd"; 64 | } 65 | 66 | .icon-twitter:before { 67 | content: "\e601"; 68 | } 69 | 70 | .icon-huaban88:before { 71 | content: "\e607"; 72 | } 73 | 74 | .icon-cnblogs:before { 75 | content: "\e603"; 76 | } 77 | 78 | .icon-u___fm__gp_:before { 79 | content: "\e602"; 80 | } 81 | -------------------------------------------------------------------------------- /old/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/old/favicon.ico -------------------------------------------------------------------------------- /old/images/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/old/images/apple-touch-icon.png -------------------------------------------------------------------------------- /old/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/old/images/logo.png -------------------------------------------------------------------------------- /old/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 灵境 15 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 38 | 39 | 40 | 41 | 42 | 43 | 47 |
48 |
49 |
50 |
51 | 63 |

64 |
hello 65 |

66 |

Welcome to my website

67 |
68 | 69 |

每一个人都应该明确自己的方向和位置 70 |
71 | -「無名」 72 |

73 | 162 |
163 |
164 |
165 |
166 |
167 |

Copyright © 2020 168 | 無名 169 |

170 |
171 |
172 | 173 | 185 | 186 | 196 | 197 | 198 | 199 | 200 | 201 | -------------------------------------------------------------------------------- /old/js/fetch.min.js: -------------------------------------------------------------------------------- 1 | !function(t){"use strict";if(!t.fetch){var s={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};if(s.arrayBuffer)var e=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],r=function(t){return t&&DataView.prototype.isPrototypeOf(t)},o=ArrayBuffer.isView||function(t){return t&&-1 -「" + e.from + "」") 37 | }).catch(function (err) { 38 | console.error(err); 39 | }) 40 | 41 | 42 | // var url = 'https://query.yahooapis.com/v1/public/yql' + 43 | // '?q=' + encodeURIComponent('select * from json where url=@url') + 44 | // '&url=' + encodeURIComponent('https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=8') + 45 | // '&format=json&callback=?'; 46 | 47 | /** 48 | * 获取Bing壁纸 49 | * 原先 YQL 已经无法提供服务了 50 | * 改用 JsonBird:https://bird.ioliu.cn/ 51 | * 52 | */ 53 | var url = 'https://bird.ioliu.cn/v1/?url=https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=8'; 54 | var imgUrls = JSON.parse(sessionStorage.getItem("imgUrls")); 55 | var index = sessionStorage.getItem("index"); 56 | var $panel = $('#panel'); 57 | if (imgUrls == null) { 58 | imgUrls = new Array(); 59 | index = 0; 60 | $.get(url, function (result) { 61 | images = result.images; 62 | for (let i = 0; i < images.length; i++) { 63 | const item = images[i]; 64 | imgUrls.push(item.url); 65 | } 66 | var imgUrl = imgUrls[index]; 67 | var url = "https://www.bing.com" + imgUrl; 68 | $panel.css("background", "url('" + url + "') center center no-repeat #666"); 69 | $panel.css("background-size", "cover"); 70 | sessionStorage.setItem("imgUrls", JSON.stringify(imgUrls)); 71 | sessionStorage.setItem("index", index); 72 | }); 73 | } else { 74 | if (index == 7) 75 | index = 0; 76 | else 77 | index++; 78 | var imgUrl = imgUrls[index]; 79 | var url = "https://www.bing.com" + imgUrl; 80 | $panel.css("background", "url('" + url + "') center center no-repeat #666"); 81 | $panel.css("background-size", "cover"); 82 | sessionStorage.setItem("index", index); 83 | } 84 | 85 | $(".iUp").each(function (i, e) { 86 | iUp.up(e); 87 | }); 88 | 89 | $(".js-avatar")[0].onload = function () { 90 | $(".js-avatar").addClass("show"); 91 | } 92 | }); 93 | 94 | $('.btn-mobile-menu__icon').click(function () { 95 | if ($('.navigation-wrapper').css('display') == "block") { 96 | $('.navigation-wrapper').on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () { 97 | $('.navigation-wrapper').toggleClass('visible animated bounceOutUp'); 98 | $('.navigation-wrapper').off('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'); 99 | }); 100 | $('.navigation-wrapper').toggleClass('animated bounceInDown animated bounceOutUp'); 101 | 102 | } else { 103 | $('.navigation-wrapper').toggleClass('visible animated bounceInDown'); 104 | } 105 | $('.btn-mobile-menu__icon').toggleClass('social iconfont icon-list social iconfont icon-ngleup animated fadeIn'); 106 | }); 107 | -------------------------------------------------------------------------------- /setting.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "棱镜之门", 3 | "description": "通往镜世界的大门", 4 | "keywords": "镜,个人主页", 5 | "author": "镜", 6 | "logo_img": "./img/icon/logo.png", 7 | "logo_text_1": "slass", 8 | "logo_text_2": "cc", 9 | "github": "poshoi", 10 | "qq": "", 11 | "email": "@qq.com", 12 | "bilibili": "18086029", 13 | "telegram": "ericici", 14 | "link_1": [ 15 | "https://a.slass.cc/", 16 | "fa-solid fa-blog", 17 | "博客" 18 | ], 19 | "link_2": [ 20 | "/", 21 | "fa-solid fa-cloud", 22 | "网盘" 23 | ], 24 | "link_3": [ 25 | "/", 26 | "fa-solid fa-music", 27 | "音乐" 28 | ], 29 | "link_4": [ 30 | "https://b.slass.cc/", 31 | "fa-solid fa-wand-magic-sparkles", 32 | "灵境" 33 | ], 34 | "link_5": [ 35 | "https://www.slass.cc/", 36 | "fa-solid fa-book-bookmark", 37 | "网址集(开发中)" 38 | ], 39 | "link_6": [ 40 | "https://www.slass.cc/", 41 | "fa-solid fa-flask", 42 | "实验室(开发中)" 43 | ], 44 | "Copyright_text": "镜", 45 | "beian": "" 46 | } -------------------------------------------------------------------------------- /sw.js: -------------------------------------------------------------------------------- 1 | self.addEventListener("error",function(e){self.clients.matchAll().then(function(t){t&&t.length&&t[0].postMessage({type:"ERROR",msg:e.message||null,stack:e.error?e.error.stack:null})})}),self.addEventListener("unhandledrejection",function(e){self.clients.matchAll().then(function(t){t&&t.length&&t[0].postMessage({type:"REJECTION",msg:e.reason?e.reason.message:null,stack:e.reason?e.reason.stack:null})})}),importScripts("https://g.alicdn.com/kg/workbox/3.3.0/workbox-sw.js"),workbox.setConfig({debug:!1,modulePathPrefix:"https://g.alicdn.com/kg/workbox/3.3.0/"}),workbox.skipWaiting(),workbox.clientsClaim();var cacheList=["/","/index.html"];workbox.routing.registerRoute(new RegExp(/\.(?:html|css)$/),workbox.strategies.networkFirst({cacheName:"ql:html",plugins:[new workbox.expiration.Plugin({maxEntries:10})]})),workbox.routing.registerRoute(new RegExp(/\.(?:js|css)$/),workbox.strategies.staleWhileRevalidate({cacheName:"ql:static",plugins:[new workbox.expiration.Plugin({maxEntries:20})]})),workbox.routing.registerRoute(new RegExp(/\.(?:png|gif|jpg|jpeg|webp|svg|cur|ttf|woff2|woff)$/),workbox.strategies.cacheFirst({cacheName:"ql:img",plugins:[new workbox.cacheableResponse.Plugin({statuses:[0,200]}),new workbox.expiration.Plugin({maxEntries:20,maxAgeSeconds:43200})]})); -------------------------------------------------------------------------------- /upgrade-your-browser/css/support.style.min.css: -------------------------------------------------------------------------------- 1 | a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:none}table{border-collapse:collapse;border-spacing:0}*,::after,::before{box-sizing:border-box}a{text-decoration:none;color:#0072c6}a:hover{text-decoration:none;color:#004d8c}body{text-align:center;font-size:14px;line-height:24px;font-family:Microsoft YaHei,'宋体',sans-serif;color:#454545;overflow-y:scroll}.page{width:960px;margin:0 auto;padding:10px;text-align:left}h2,h3{font-family:Microsoft YaHei}h1{font-size:40px;line-height:60px;font-weight:100;margin:20px 0 15px}h2{font-size:20px;line-height:25px;font-weight:100;margin:10px 0}h3{font-weight:700}code{padding:2px 4px;font-size:95%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}pre code{white-space:pre-wrap;word-break:break-word;display:inline-block;word-break:break-all}ul{padding:0 1em}ul li{list-style-type:disc;list-style-position:inside}b,strong{font-weight:700}em{color:red}p{margin-bottom:10px}.hr,hr{margin:20px 0;border:0;width:100%;height:1px;overflow:hidden;background-color:#ccc}.text-right{text-align:right}.clearboth{clear:both;width:100%;content:""}.clearleft{clear:left;width:100%;content:""}.clearright{clear:right;width:100%;content:""}.browser-list{margin:16px 0 10px;padding:0;height:42px}.browser{display:block;width:155px;height:34px;line-height:22px;float:left;list-style:none}.browser.clearleft{height:1px}.browser span{display:block;font-size:12px;line-height:1.2}.browser img{width:34px;height:34px;border:0;float:left;margin-right:10px}.browser.firefox{width:150px}.browser.edge{width:150px}.browser.safari{width:150px}.browser.se360{width:160px}.browser.qqbrowser{width:140px}.small-alert{font-size:12px;margin:15px 0 8px;color:#90949c}.small-alert:not(.hide)+hr{margin-top:0}.hide{display:none}.alert-danger{display:block;color:#777;background-color:#f1f1f1;padding:6px 12px;clear:both}.alert-info{color:#000;background-color:#f1f6fc;margin-top:12px}.alert-info img{vertical-align:text-top}#win-danger{margin-top:12px;position:relative}#win-danger .arrow{background:url(/images/arrow.png) no-repeat;border:0;position:absolute;display:block;width:20px;height:12px;left:325px;top:-12px}#referrer a,.targetline{word-break:break-all}.top-alert{background:#f2f2f2}.top-alert-content{font-size:14px}@media only screen and (max-width:959px){.page{max-width:100%;padding:20px;font-size:16px;line-height:26px}h1{font-size:26px;line-height:1.8;font-weight:700;margin-top:0}.browser-list{height:auto}.browser{margin:0 20px 20px 0}code{word-break:break-word}} -------------------------------------------------------------------------------- /upgrade-your-browser/end-of-ie-support/css/support.style.min.css: -------------------------------------------------------------------------------- 1 | a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:none}table{border-collapse:collapse;border-spacing:0}*,::after,::before{box-sizing:border-box}a{text-decoration:none;color:#0072c6}a:hover{text-decoration:none;color:#004d8c}body{text-align:center;font-size:14px;line-height:24px;font-family:Microsoft YaHei,'宋体',sans-serif;color:#454545;overflow-y:scroll}.page{width:960px;margin:0 auto;padding:10px;text-align:left}h2,h3{font-family:Microsoft YaHei}h1{font-size:40px;line-height:60px;font-weight:100;margin:20px 0 15px}h2{font-size:20px;line-height:25px;font-weight:100;margin:10px 0}h3{font-weight:700}code{padding:2px 4px;font-size:95%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}pre code{white-space:pre-wrap;word-break:break-word;display:inline-block;word-break:break-all}ul{padding:0 1em}ul li{list-style-type:disc;list-style-position:inside}b,strong{font-weight:700}em{color:red}p{margin-bottom:10px}.hr,hr{margin:20px 0;border:0;width:100%;height:1px;overflow:hidden;background-color:#ccc}.text-right{text-align:right}.clearboth{clear:both;width:100%;content:""}.clearleft{clear:left;width:100%;content:""}.clearright{clear:right;width:100%;content:""}.browser-list{margin:16px 0 10px;padding:0;height:42px}.browser{display:block;width:155px;height:34px;line-height:22px;float:left;list-style:none}.browser.clearleft{height:1px}.browser span{display:block;font-size:12px;line-height:1.2}.browser img{width:34px;height:34px;border:0;float:left;margin-right:10px}.browser.firefox{width:150px}.browser.edge{width:150px}.browser.safari{width:150px}.browser.se360{width:160px}.browser.qqbrowser{width:140px}.small-alert{font-size:12px;margin:15px 0 8px;color:#90949c}.small-alert:not(.hide)+hr{margin-top:0}.hide{display:none}.alert-danger{display:block;color:#777;background-color:#f1f1f1;padding:6px 12px;clear:both}.alert-info{color:#000;background-color:#f1f6fc;margin-top:12px}.alert-info img{vertical-align:text-top}#win-danger{margin-top:12px;position:relative}#win-danger .arrow{background:url(/images/arrow.png) no-repeat;border:0;position:absolute;display:block;width:20px;height:12px;left:325px;top:-12px}#referrer a,.targetline{word-break:break-all}.top-alert{background:#f2f2f2}.top-alert-content{font-size:14px}@media only screen and (max-width:959px){.page{max-width:100%;padding:20px;font-size:16px;line-height:26px}h1{font-size:26px;line-height:1.8;font-weight:700;margin-top:0}.browser-list{height:auto}.browser{margin:0 20px 20px 0}code{word-break:break-word}} -------------------------------------------------------------------------------- /upgrade-your-browser/end-of-ie-support/index.html: -------------------------------------------------------------------------------- 1 | 对旧版 Internet Explorer 的支持服务已终止
本页是 IE 旧版支持服务终止页面的文字副本,因微软官方网页无法在旧版IE中正常访问,故提供此备份以供旧版IE用户浏览。查看原网页

对旧版 Internet Explorer 的支持服务已终止

从 2016 年 1 月 12 日开始,仅面向受支持操作系统的最新版 Internet Explorer 将收到技术支持和安全更新。Internet Explorer 11 是最新版的 Internet Explorer,将继续在 Windows 7、Windows 8.1 和 Windows 10 上收到安全更新、兼容性修复程序和技术支持。

这意味着什么?

这意味着您应该采取行动。2016 年 1 月 12 日之后,Microsoft 将不再为 Internet Explorer 早期版本提供安全更新或技术支持。安全更新用于修补可能被恶意软件利用的漏洞,从而为提高用户及其数据的安全性提供帮助。定期安全更新帮助保护计算机不受恶意攻击,因此升级和保持最新很重要。

我如何升级 Internet Explorer?

中小型企业:对于考虑浏览器升级的中小型企业,选择有很多。没有 Web 应用程序的中小型组织(员工在 500 人以下)可使用自动更新进行自动更新。对于依赖现有 Web 应用程序的中小型企业,可以寻找 Microsoft 认证合作伙伴以了解符合其业务需要的最佳方案。

企业客户:Microsoft 为大型组织(员工在 500 人以上)提供丰富的技术资源、工具和专家指导,以帮助这些组织轻松部署和管理 Windows、Office 以及 Internet Explorer 产品和技术。通过联系您的 Microsoft 销售代表、Microsoft Services 部门或 Microsoft 认证合作伙伴,详细了解迁移和部署计划。了解如何通过访问 TechNet 自行试用和部署最新版本的 Edge。

使用 Internet Explorer 早期版本的潜在风险

2016 年 1 月 12 日后运行 Internet Explorer 早期版本可能使您面临潜在风险,例如:

安全性:没有关键的浏览器安全更新,您的 PC 可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。

合规性:需要遵守法规规定(如 HIPAA)的企业应执行尽职调查,以评估它们使用不受支持的软件是否仍能满足合规性要求。

缺乏独立软件 (ISV) 支持:许多独立软件供应商 (ISV) 都不再支持 Internet Explorer 早期版本。例如,Office 365 采用现代 Web 标准,而且与最新浏览器一起使用时运行最出色。

Copyright © 2020無名 . All Rights Reserved

-------------------------------------------------------------------------------- /upgrade-your-browser/end-of-ie-support/js/er3eport.min.js: -------------------------------------------------------------------------------- 1 | var _hmt=_hmt||[],er3eport={};er3eport.start=(new Date).getTime(),er3eport.codetime=function(){return(new Date).getTime()-er3eport.start},er3eport.dodnt=function(){window.dnt=1,"function"==typeof window.dodnt&&window.dodnt()},er3eport.jqdefined=function(){_hmt.push(["_setCustomVar",2,"JSERROR","jQueryDefined # "+er3eport.codetime(),3]),er3eport.dodnt()},er3eport.listener=function(e){var t,r=!1,n="JSERROR";"string"==typeof e?r=e:(e.error?r=e.error.stack:e.message&&(r=e.message),e.srcElement&&e.srcElement.src?t=e.srcElement.src:e.target&&e.target.src&&(t=e.target.src),r||(t?(r="FileError: "+t,n="FILEERROR"):e.type&&(r=e.type)));return r="string"!=typeof r?"empty_error_string":r.replace(/\n/g,"").replace(/\s+/g," "),_hmt.push(["_trackEvent",n,window.location.pathname,r+" #UA# "+navigator.userAgent+" # "+er3eport.codetime()]),!0},"function"==typeof jQuery&&er3eport.jqdefined(),Object.defineProperty&&Object.defineProperty(window,"jQuery",{set:er3eport.jqdefined}),window.addEventListener?window.addEventListener("error",er3eport.listener,!0):window.attachEvent&&window.attachEvent("onerror",er3eport.listener); -------------------------------------------------------------------------------- /upgrade-your-browser/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/upgrade-your-browser/favicon.ico -------------------------------------------------------------------------------- /upgrade-your-browser/images/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/upgrade-your-browser/images/chrome.png -------------------------------------------------------------------------------- /upgrade-your-browser/images/edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/upgrade-your-browser/images/edge.png -------------------------------------------------------------------------------- /upgrade-your-browser/images/firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/upgrade-your-browser/images/firefox.png -------------------------------------------------------------------------------- /upgrade-your-browser/images/qqbrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/upgrade-your-browser/images/qqbrowser.png -------------------------------------------------------------------------------- /upgrade-your-browser/images/safari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/upgrade-your-browser/images/safari.png -------------------------------------------------------------------------------- /upgrade-your-browser/images/se360.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/upgrade-your-browser/images/se360.png -------------------------------------------------------------------------------- /upgrade-your-browser/index.html: -------------------------------------------------------------------------------- 1 | 请升级您的浏览器

是时候升级你的浏览器了

你正在使用旧版 Internet Explorer( IE11 及以下版本或使用该内核的浏览器 )。这意味着在升级浏览器前,你将无法访问此网站。

请注意:Windows XP 及旧版 Internet Explorer 的支持服务已终止

自2016年1月12日起,微软不再为 IE 11 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 微软对旧版 Internet Explorer 的支持服务已终止的说明

更先进的浏览器

推荐使用以下浏览器的最新版本。如果你的电脑已有以下浏览器的最新版本则直接使用该浏览器或开启极速模式访问即可。

为什么会出现这个页面?

如果你不知道升级浏览器是什么意思,请请教一些熟练电脑操作的朋友。如果你使用的不是 IE6 / 7 / 8 / 9 / 10,而是 Google Chrome、Safari、Microsoft Edge、火狐浏览器等,出现这个页面可能是因为你使用的不是该浏览器的最新版本,升级至最新即可。

一起抵制 IE6、IE7、IE8、IE9、IE10、IE11

为了兼容这个曾经的浏览器霸主,网页设计人员需要做大量的代码工作。对于普通用户而言,低版本 IE 更是一个岌岌可危的安全隐患,在 Windows 历史上几次大的木马病毒事件都是利用 IE 漏洞进行传播。所以,请和我们一起抵制 IE 的过期版本!

Copyright © 2020無名 . All Rights Reserved

-------------------------------------------------------------------------------- /upgrade-your-browser/js/er3eport.min.js: -------------------------------------------------------------------------------- 1 | var _hmt=_hmt||[],er3eport={};er3eport.start=(new Date).getTime(),er3eport.codetime=function(){return(new Date).getTime()-er3eport.start},er3eport.dodnt=function(){window.dnt=1,"function"==typeof window.dodnt&&window.dodnt()},er3eport.jqdefined=function(){_hmt.push(["_setCustomVar",2,"JSERROR","jQueryDefined # "+er3eport.codetime(),3]),er3eport.dodnt()},er3eport.listener=function(e){var t,r=!1,n="JSERROR";"string"==typeof e?r=e:(e.error?r=e.error.stack:e.message&&(r=e.message),e.srcElement&&e.srcElement.src?t=e.srcElement.src:e.target&&e.target.src&&(t=e.target.src),r||(t?(r="FileError: "+t,n="FILEERROR"):e.type&&(r=e.type)));return r="string"!=typeof r?"empty_error_string":r.replace(/\n/g,"").replace(/\s+/g," "),_hmt.push(["_trackEvent",n,window.location.pathname,r+" #UA# "+navigator.userAgent+" # "+er3eport.codetime()]),!0},"function"==typeof jQuery&&er3eport.jqdefined(),Object.defineProperty&&Object.defineProperty(window,"jQuery",{set:er3eport.jqdefined}),window.addEventListener?window.addEventListener("error",er3eport.listener,!0):window.attachEvent&&window.attachEvent("onerror",er3eport.listener); -------------------------------------------------------------------------------- /upgrade-your-browser/js/main.min.js: -------------------------------------------------------------------------------- 1 | var l=window.location,s=l.search.substr(1),r="",dr=document.referrer,r1=s.match(/(^|&)referrer=((http|https)[^&]*)/),r2=s.match(/^referrer=((http|https)\:\/\/.*)$/);null!==r2?r=r2[1]:null!==r1&&(r=r1[2]),""===r&&""!==dr&&null===dr.match(/\/(?:.*\.dmeng\.net|(?:(?:(?:www|m|wap|cn|search)\.)?(?:google|baidu|sogou|bing|so|yahoo|yandex|duckduckgo)\.com(?:\.[a-z]+)?))/)&&(l.href=l.protocol+"//"+l.hostname+l.pathname+"?referrer="+encodeURIComponent(dr)+"&"+s);var url=decodeURIComponent(r);-1!=url.indexOf(window.location.hostname+"/")&&(url="");var targetUrlHTML="";if(""!==url){var m=url.match(/^(https?\:\/\/[^/]+\/)index\.html$/);targetUrlHTML=' '+(m?m[1]:url)+" "} -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "routes": [{ 4 | "handle": "filesystem" 5 | }, 6 | { 7 | "src": "/(.*)", 8 | "status": 404, 9 | "dest": "/" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /z3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/suiuko/homeweb/c5ccc5a4b8ce4f46468c9dd1df7a8cba8151ee63/z3.png --------------------------------------------------------------------------------