# Conflicts:
#	dist/lang/relationship.zh-HK.min.js
#	dist/lang/relationship.zh-HK.min.mjs
#	dist/relationship.min.js
#	dist/relationship.min.mjs
This commit is contained in:
zhenghaole 2024-09-06 09:18:52 +08:00
commit 227f44dced
9 changed files with 1000 additions and 628 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,7 @@
const gulp = require('gulp');
const rename = require("gulp-rename");
const cht = require('gulp-cht');
const replace = require('gulp-replace');
gulp.task('localization', () => {
// gulp.src('./index.html')
@ -14,6 +15,7 @@ gulp.task('localization', () => {
'dist/relationship-mode.min.js',
'dist/relationship-mode.min.mjs',
]).pipe(cht())
.pipe(replace('嶽','岳'))
.pipe(rename(function(path) {
path.basename = path.basename.replace('.min','.zh-HK.min');
}))

View File

@ -26,21 +26,8 @@
</script>
</head>
<body>
<div class="wrapper">
<div class="mod-bg">
<svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
<defs>
<path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path>
</defs>
<g class="parallax">
<use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(255,255,255,0.4)"></use>
<use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(255,255,255,0.6)"></use>
<use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(255,255,255,0.2)"></use>
<use xlink:href="#gentle-wave" x="48" y="7" fill="rgba(255,255,255,1)"></use>
</g>
</svg>
</div>
<div class="header">
<div class="scroll-container">
<header>
<div class="mod-head">
<div class="inner">
<div class="bd">
@ -57,11 +44,25 @@
</div>
</div>
</div>
</header>
<section class="scroll-item">
<div class="mod-bg">
<svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
<defs>
<path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path>
</defs>
<g class="parallax">
<use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(255,255,255,0.4)"></use>
<use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(255,255,255,0.6)"></use>
<use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(255,255,255,0.2)"></use>
<use xlink:href="#gentle-wave" x="48" y="7" fill="rgba(255,255,255,1)"></use>
</g>
</svg>
</div>
<div class="container">
<div class="mod-panel">
<div class="module mod-panel">
<div class="inner">
<div class="hd">
<div class="bd">
<div class="panel-left">
<h1><span class="name">中国</span><span>亲戚关系计算器</span><span class="tag">开源算法</span></h1>
<p>逢年过节遇到三姑六婆,拒绝叫不出口的尴尬!轻松搞定亲戚关系~</p>
<p>当前亲戚称呼大全已收录约<b id="count">-</b>条亲戚关系</p>
@ -78,7 +79,7 @@
</a>
</div>
</div>
<div class="bd">
<div class="panel-right">
<div class="c-hd">
<ul>
<li class="active"><a href="javascript:;" rel="nofollow">关系找称呼</a></li>
@ -280,6 +281,9 @@
</div>
</div>
</div>
</div>
</section>
<section class="scroll-item">
<div class="module mod-intro">
<div class="inner">
<div class="hd"><span>功能支持</span></div>
@ -361,9 +365,11 @@
</div>
</div>
</div>
<div class="mod-banner">
</section>
<section class="scroll-item">
<div class="module mod-article">
<div class="inner">
<div class="bd">
<div class="banner">
<span>外甥</span>
<span>姑姑</span>
<span>岳父</span>
@ -403,10 +409,6 @@
<span>孙子</span>
<span>姑丈公</span>
</div>
</div>
</div>
<div class="module mod-article">
<div class="inner">
<div class="hd"><span>关于中国亲戚称呼</span></div>
<div class="bd">
<p>亲属是基于婚姻、血缘和法律拟制而形成的社会关系。亲属关系包括夫妻、父母、子女、兄弟姊妹、祖父母和外祖父母、孙子女和外孙子女、儿媳和公婆、女婿和岳父母、以及其他三代以内的旁系血亲,如伯、叔、姑、舅、姨、侄子女、甥子女、堂兄弟姊妹、表兄弟姊妹、姨兄弟姊妹等。</p>
@ -416,6 +418,8 @@
</div>
</div>
</div>
</section>
<section class="scroll-item">
<div class="module mod-copy">
<div class="inner">
<div class="hd"><span>算法开源</span></div>
@ -433,6 +437,8 @@
</div>
</div>
</div>
</section>
<section class="scroll-item">
<div class="module mod-app">
<div class="inner">
<div class="hd"><span>他们都在使用</span></div>
@ -466,7 +472,7 @@
</div>
</div>
</div>
<div class="mod-foot">
<div class="module mod-foot">
<div class="inner">
<div class="hd"><span>😳支持我的开源</span></div>
<div class="bd">
@ -503,7 +509,9 @@
</ul>
</div>
</div>
</div>
<script type="text/javascript" src="https://passer-by.com/public/script/projects.js"></script>
<script type="text/javascript" src="https://passer-by.com/public/script/stat.js"></script>
</section>
</div>
<script type="text/javascript" src="dist/relationship.min.js"></script>
<script type="text/javascript" src="dist/relationship-mode.min.js"></script>
@ -764,7 +772,5 @@
})();
</script>
<script async defer src="https://cdn.bootcdn.net/ajax/libs/github-buttons/2.21.1/buttons.min.js"></script>
<script type="text/javascript" src="https://passer-by.com/public/script/projects.js"></script>
<script type="text/javascript" src="https://passer-by.com/public/script/stat.js"></script>
</body>
</html>

309
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "relationship.js",
"version": "1.2.6",
"version": "1.2.7",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "relationship.js",
"version": "1.2.6",
"version": "1.2.7",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.24.4",
@ -19,6 +19,7 @@
"gulp": "^5.0.0",
"gulp-cht": "^2.0.20",
"gulp-rename": "^2.0.0",
"gulp-replace": "^1.1.4",
"rollup": "^3.29.4",
"tape": "^5.7.5",
"through2": "^4.0.2"
@ -1933,12 +1934,40 @@
"integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==",
"dev": true
},
"node_modules/@types/expect": {
"version": "1.20.4",
"resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz",
"integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/node": {
"version": "22.1.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz",
"integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==",
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~6.13.0"
}
},
"node_modules/@types/resolve": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
"integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
"dev": true
},
"node_modules/@types/vinyl": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz",
"integrity": "sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/expect": "^1.20.4",
"@types/node": "*"
}
},
"node_modules/acorn": {
"version": "8.11.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.1.tgz",
@ -2191,6 +2220,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/binaryextensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz",
"integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.8"
},
"funding": {
"url": "https://bevry.me/fund"
}
},
"node_modules/bl": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz",
@ -2460,6 +2502,13 @@
"url": "https://opencollective.com/core-js"
}
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"dev": true,
"license": "MIT"
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@ -3325,6 +3374,23 @@
"node": ">=4"
}
},
"node_modules/gulp-replace": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.1.4.tgz",
"integrity": "sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*",
"@types/vinyl": "^2.0.4",
"istextorbinary": "^3.0.0",
"replacestream": "^4.0.3",
"yargs-parser": ">=5.0.0-security.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/gulplog": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz",
@ -3929,6 +3995,13 @@
"node": ">=0.10.0"
}
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"dev": true,
"license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@ -3944,6 +4017,23 @@
"node": ">=0.10.0"
}
},
"node_modules/istextorbinary": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-3.3.0.tgz",
"integrity": "sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"binaryextensions": "^2.2.0",
"textextensions": "^3.2.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://bevry.me/fund"
}
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@ -4136,6 +4226,16 @@
"node": ">= 10.13.0"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-inspect": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
@ -4301,6 +4401,13 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true,
"license": "MIT"
},
"node_modules/queue-tick": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
@ -4466,6 +4573,51 @@
"node": ">= 10.13.0"
}
},
"node_modules/replacestream": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz",
"integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
"escape-string-regexp": "^1.0.3",
"object-assign": "^4.0.1",
"readable-stream": "^2.0.2"
}
},
"node_modules/replacestream/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dev": true,
"license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/replacestream/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true,
"license": "MIT"
},
"node_modules/replacestream/node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@ -4949,6 +5101,19 @@
"node": ">=10"
}
},
"node_modules/textextensions": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/textextensions/-/textextensions-3.3.0.tgz",
"integrity": "sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://bevry.me/fund"
}
},
"node_modules/through2": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
@ -5104,6 +5269,13 @@
"node": ">= 10.13.0"
}
},
"node_modules/undici-types": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz",
"integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==",
"dev": true,
"license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
@ -6742,12 +6914,37 @@
"integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==",
"dev": true
},
"@types/expect": {
"version": "1.20.4",
"resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz",
"integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==",
"dev": true
},
"@types/node": {
"version": "22.1.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz",
"integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==",
"dev": true,
"requires": {
"undici-types": "~6.13.0"
}
},
"@types/resolve": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
"integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
"dev": true
},
"@types/vinyl": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz",
"integrity": "sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==",
"dev": true,
"requires": {
"@types/expect": "^1.20.4",
"@types/node": "*"
}
},
"acorn": {
"version": "8.11.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.1.tgz",
@ -6920,6 +7117,12 @@
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true
},
"binaryextensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz",
"integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==",
"dev": true
},
"bl": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz",
@ -7105,6 +7308,12 @@
"browserslist": "^4.23.0"
}
},
"core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"dev": true
},
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@ -7769,6 +7978,19 @@
"integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==",
"dev": true
},
"gulp-replace": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.1.4.tgz",
"integrity": "sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw==",
"dev": true,
"requires": {
"@types/node": "*",
"@types/vinyl": "^2.0.4",
"istextorbinary": "^3.0.0",
"replacestream": "^4.0.3",
"yargs-parser": ">=5.0.0-security.0"
}
},
"gulplog": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz",
@ -8167,6 +8389,12 @@
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"dev": true
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"dev": true
},
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@ -8179,6 +8407,16 @@
"integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"dev": true
},
"istextorbinary": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-3.3.0.tgz",
"integrity": "sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ==",
"dev": true,
"requires": {
"binaryextensions": "^2.2.0",
"textextensions": "^3.2.0"
}
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@ -8325,6 +8563,12 @@
"once": "^1.4.0"
}
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true
},
"object-inspect": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
@ -8445,6 +8689,12 @@
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
},
"queue-tick": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
@ -8579,6 +8829,49 @@
"integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==",
"dev": true
},
"replacestream": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz",
"integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.3",
"object-assign": "^4.0.1",
"readable-stream": "^2.0.2"
},
"dependencies": {
"readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
"safe-buffer": "~5.1.0"
}
}
}
},
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@ -8948,6 +9241,12 @@
"source-map-support": "~0.5.20"
}
},
"textextensions": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/textextensions/-/textextensions-3.3.0.tgz",
"integrity": "sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw==",
"dev": true
},
"through2": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
@ -9064,6 +9363,12 @@
"integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==",
"dev": true
},
"undici-types": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz",
"integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==",
"dev": true
},
"unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",

View File

@ -58,6 +58,7 @@
"gulp": "^5.0.0",
"gulp-cht": "^2.0.20",
"gulp-rename": "^2.0.0",
"gulp-replace": "^1.1.4",
"rollup": "^3.29.4",
"tape": "^5.7.5",
"through2": "^4.0.2"

View File

@ -1,8 +1,8 @@
// 头部滚动
(function(){
let $header = document.querySelector('.header');
document.addEventListener('scroll',function(){
let scrollTop = document.documentElement.scrollTop;
let $header = document.querySelector('.mod-head');
document.querySelector('.scroll-container').addEventListener('scroll',function(){
let scrollTop = this.scrollTop;
let ratio = Math.min(scrollTop/1000,1);
$header.style.background = 'rgba(255,255,255,'+(ratio*0.8)+')';
$header.style.boxShadow = '1px 1px 6px rgba(0,0,0,'+(ratio*0.1)+')';
@ -11,20 +11,13 @@
// 底部滚动
(function(){
let timer = null;
let $gotop = document.querySelector('.mod-fixedbar .gotop');
let $container = document.querySelector('.scroll-container');
$gotop.addEventListener('click',function(){
cancelAnimationFrame(timer);
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
let move = scrollTop/18;
timer = requestAnimationFrame(function fn(){
var oTop = document.body.scrollTop || document.documentElement.scrollTop;
if(oTop > 0){
document.body.scrollTop = document.documentElement.scrollTop = oTop - move;
timer = requestAnimationFrame(fn);
}else{
cancelAnimationFrame(timer);
}
$container.scrollTo({
left:0,
top:0,
behavior:'smooth'
});
});
})();

View File

@ -23,11 +23,30 @@ a:hover{
}
.header{
margin-bottom: 15px;
.scroll-container{
position: relative;
height: 100vh;
scroll-snap-type: y mandatory;
overflow: auto;
scrollbar-gutter:stable;
scroll-behavior:smooth
}
.container{
padding-bottom: 30px;
.scroll-container .scroll-item{
position: relative;
scroll-snap-align: center;
}
.scroll-container .scroll-item:before,.scroll-container .scroll-item:after {
content:"";
display:table;
}
.scroll-container .scroll-item:after { clear:both; }
header{
position: sticky;
left: 0;
top: 0;
width: 100%;
height: 0;
z-index: 99;
}
.inner{
max-width: 1000px;
@ -35,7 +54,7 @@ a:hover{
margin: 0 auto;
}
.module{
margin-bottom: 80px;
margin: 60px 0;
}
.module .hd{
margin: 0 5px 5px;
@ -51,7 +70,7 @@ a:hover{
position: absolute;
left: 0;
top: 0;
height: 500px;
height: 550px;
width: 100%;
z-index: -1;
background: url('../image/bg.svg') center top repeat-x;
@ -103,12 +122,11 @@ a:hover{
}
}
.header{
position: sticky;
.mod-head{
position: absolute;
left: 0;
top: 0;
width: 100%;
z-index: 99;
backdrop-filter: blur(10px);
}
.mod-head .bd{
@ -184,26 +202,27 @@ a:hover{
opacity: .02;
}
.mod-panel{
margin-bottom: 80px;
.mod-panel .bd{
display: flex;
padding-top: 20px;
}
.mod-panel .hd{
float: left;
width: 50%;
.mod-panel .panel-left{
width: 55%;
padding-top: 15px;
line-height: 22px;
}
.mod-panel .hd h1{
.mod-panel .panel-left h1{
margin-bottom: 10px;
line-height: 30px;
font-weight: bold;
font-size: 30px;
color:#1a2b3b;
}
.mod-panel .hd h1 span.name{
.mod-panel .panel-left h1 span.name{
display: block;
}
.mod-panel .hd h1 span.tag{
.mod-panel .panel-left h1 span.tag{
display: inline-block;
padding: 0 8px;
margin: 0 5px;
@ -215,22 +234,22 @@ a:hover{
border-radius: 4px;
box-shadow: 0 1px 5px 0 rgba(0,0,0,0.03);
}
.mod-panel .hd p{
.mod-panel .panel-left p{
line-height: 24px;
font-size: 15px;
}
.mod-panel .hd p.text-gray{
.mod-panel .panel-left p.text-gray{
color: rgba(0,0,0,0.25);
}
.mod-panel .hd .picture,.mod-panel .hd .mobile{
.mod-panel .panel-left .picture,.mod-panel .panel-left .mobile{
position: relative;
width: 400px;
text-align: center;
}
.mod-panel .hd .picture img{
.mod-panel .panel-left .picture img{
margin-left: -56px;
}
.mod-panel .hd .btn{
.mod-panel .panel-left .btn{
position: relative;
display: inline-block;
height: 36px;
@ -248,12 +267,12 @@ a:hover{
outline: none;
-webkit-appearance: none;
}
.mod-panel .hd .btn span.name{
.mod-panel .panel-left .btn span.name{
display: inline-block;
padding-right: 30px;
background: url('../image/scan.png') right center / 16px 16px no-repeat;
}
.mod-panel .hd .btn span.qrcode{
.mod-panel .panel-left .btn span.qrcode{
display: none;
position: absolute;
right: -160px;
@ -264,13 +283,13 @@ a:hover{
margin-top: -84px;
border: 2px solid rgba(0,0,0,0.1);
}
.mod-panel .hd .btn span.qrcode img{
.mod-panel .panel-left .btn span.qrcode img{
width: 150px;
height: 150px;
padding: 5px;
background: #fff;
}
.mod-panel .hd .btn span.qrcode::after{
.mod-panel .panel-left .btn span.qrcode::after{
position: absolute;
left: -6px;
top: 50%;
@ -283,73 +302,93 @@ a:hover{
box-shadow: -2px 2px 0 rgba(0,0,0,0.1);
transform: rotate(45deg);
}
.mod-panel .hd .btn:hover {
.mod-panel .panel-left .btn:hover {
background: #207fcc;
}
.mod-panel .hd .btn:hover span.qrcode{
.mod-panel .panel-left .btn:hover span.qrcode{
display: block;
}
.mod-panel .hd b{
.mod-panel .panel-left b{
margin: 0 3px;
color: #fd7474;
}
.mod-panel .bd{
margin-left: 55%;
background: #fff;
box-shadow: 0 1px 5px 0 rgba(0,0,0,0.025);
border: 1px solid rgba(0,0,0,0.025);
.mod-panel .panel-right{
width: 45%;
}
.mod-panel .bd .c-hd{
.mod-panel .panel-right .c-hd{
height: 44px;
border-bottom: 1px solid #f4f4f4;
margin-bottom: 10px;
}
.mod-panel .bd .c-hd li{
float: left;
width: 25%;
.mod-panel .panel-right .c-hd ul{
display: flex;
}
.mod-panel .panel-right .c-hd li{
flex: 1;
height: 44px;
line-height: 44px;
}
.mod-panel .bd .c-hd li a{
.mod-panel .panel-right .c-hd li a{
position: relative;
display: block;
text-align: center;
text-decoration: none;
font-size: 14px;
color: #999;
font-size: 16px;
font-weight: bold;
color: rgba(0,0,0,0.25);
cursor: pointer;
transition: all 0.25s ease-in;
}
.mod-panel .bd .c-hd li.active a{
position: relative;
color: #333;
.mod-panel .panel-right .c-hd li a::after{
position: absolute;
left: 50%;
bottom: 0;
display: block;
content: '';
width: 0px;
height: 0px;
margin-left: 0px;
background: #2095f2;
border-radius: 0px;
transition: all 0.25s ease-in;
}
.mod-panel .bd .c-hd li.active a::after{
.mod-panel .panel-right .c-hd li.active a{
flex: 1.5;
font-size: 20px;
color: rgba(0,0,0,0.9);
}
.mod-panel .panel-right .c-hd li.active a::after{
position: absolute;
left: 50%;
bottom: 0;
display: block;
content: '';
width: 16px;
height: 4px;
height: 6px;
margin-left: -8px;
background: #2095f2;
border-radius: 3px;
}
.mod-panel .bd .c-bd{
.mod-panel .panel-right .c-bd{
height: 450px;
padding: 18px 20px;
background: #fff;
box-shadow: 0 0 0 3px rgba(0,0,0,0.025);
border: 1px solid rgba(0,0,0,0.025);
border-radius: 12px;
}
.mod-panel .bd .c-panel{
.mod-panel .panel-right .c-panel{
display: none;
}
.mod-panel .bd .c-panel .operation{
.mod-panel .panel-right .c-panel .operation{
margin: 10px 0;
}
.mod-panel .bd .c-panel .row{
.mod-panel .panel-right .c-panel .row{
margin-bottom: 5px;
}
.mod-panel .bd .c-panel .field{
.mod-panel .panel-right .c-panel .field{
line-height: 28px;
}
.mod-panel .bd .c-panel .intro{
.mod-panel .panel-right .c-panel .intro{
padding: 10px 15px;
margin: 25px 0;
background: #fffbf5;
@ -357,24 +396,24 @@ a:hover{
color: #666;
border-radius: 5px;
}
.mod-panel .bd .c-panel .intro h3{
.mod-panel .panel-right .c-panel .intro h3{
line-height: 30px;
font-weight: bold;
font-size: 15px;
color: #666;
}
.mod-panel .bd p{
.mod-panel .panel-right p{
overflow: hidden;
}
.mod-panel .bd label{
.mod-panel .panel-right label{
display: inline-block;
min-width: 90px;
margin-right: 15px;
}
.mod-panel .bd label span,.mod-panel .bd label input{
.mod-panel .panel-right label span,.mod-panel .panel-right label input{
vertical-align: middle;
}
.mod-panel .bd .input-text{
.mod-panel .panel-right .input-text{
display: inline-block;
width: 100%;
height: 36px;
@ -386,13 +425,13 @@ a:hover{
border-radius: 5px;
outline: none;
}
.mod-panel .bd .input-text-small{
.mod-panel .panel-right .input-text-small{
width: 200px;
}
.mod-panel .bd .text-right{
.mod-panel .panel-right .text-right{
text-align: right;
}
.mod-panel .bd .btn {
.mod-panel .panel-right .btn {
height: 32px;
min-width: 80px;
background: #f0f0f0;
@ -406,40 +445,40 @@ a:hover{
border-radius: 4px;
box-sizing: border-box;
}
.mod-panel .bd .btn:hover{
.mod-panel .panel-right .btn:hover{
background: #e4e4e4;
}
.mod-panel .bd .btn-green{
.mod-panel .panel-right .btn-green{
background: #4bae4f;
color: #fff;
}
.mod-panel .bd .btn-green:hover{
.mod-panel .panel-right .btn-green:hover{
background: #47a04b;
}
.mod-panel .bd .btn-red{
.mod-panel .panel-right .btn-red{
background: #f56954;
color: #fff;
}
.mod-panel .bd .btn-red:hover{
.mod-panel .panel-right .btn-red:hover{
background: #f4543c;;
}
.mod-panel .bd .btn-orange{
.mod-panel .panel-right .btn-orange{
background: #ff9000;
color: #fff;
}
.mod-panel .bd .btn-orange:hover{
.mod-panel .panel-right .btn-orange:hover{
background: #e18309;
}
.mod-panel .bd .btn-small{
.mod-panel .panel-right .btn-small{
min-width: 36px;
margin-right: -1px;
cursor: pointer;
}
.mod-panel .bd .btn[disabled]{
.mod-panel .panel-right .btn[disabled]{
background: #f0f0f0;
color: #aaa;
}
.mod-panel .bd textarea{
.mod-panel .panel-right textarea{
display: block;
width: 100%;
height: 120px;
@ -451,63 +490,13 @@ a:hover{
resize: none;
outline: none;
}
.mod-panel .bd p{
.mod-panel .panel-right p{
line-height: 22px;
}
.mod-panel .bd p span{
.mod-panel .panel-right p span{
margin-right: 4px;
}
.mod-banner .bd{
height: 120px;
padding: 20px 20px 20px 38%;
background: linear-gradient(to right,rgba(0,0,0,0) 0%, rgba(246,248,250,0.5) 100%);
border-radius: 12px;
line-height: 27px;
vertical-align: middle;
text-align: right;
font-size: 30px;
font-weight: bold;
color: #8b949e;
}
.mod-banner .bd span{
display: inline-block;
white-space: nowrap;
transform: scale(1);
}
.mod-banner .bd span:hover{
transform: scale(1.2);
transition: all 0.25s ease-in;
}
.mod-banner .bd span:nth-child(7n){
opacity: 0.15;
zoom: 0.6;
}
.mod-banner .bd span:nth-child(7n+1){
opacity: 0.35;
zoom: 0.7;
}
.mod-banner .bd span:nth-child(7n+2){
opacity: 0.25;
zoom: 0.6;
}
.mod-banner .bd span:nth-child(7n+3){
opacity: 0.30;
zoom: 0.9;
}
.mod-banner .bd span:nth-child(7n+4){
opacity: 0.45;
zoom: 0.8;
}
.mod-banner .bd span:nth-child(7n+5){
opacity: 0.40;
zoom: 0.7;
}
.mod-banner .bd span:nth-child(7n+6){
opacity: 0.65;
zoom: 1;
}
.mod-intro .bd ul{
overflow: hidden;
}
@ -544,8 +533,54 @@ a:hover{
overflow-x: auto;
}
.mod-article{
margin-bottom: 100px;
.mod-article .banner{
height: 120px;
padding: 20px 20px 20px 38%;
background: linear-gradient(to right,rgba(0,0,0,0) 0%, rgba(246,248,250,0.5) 100%);
border-radius: 12px;
line-height: 27px;
vertical-align: middle;
text-align: right;
font-size: 30px;
font-weight: bold;
color: #8b949e;
}
.mod-article .banner span{
display: inline-block;
white-space: nowrap;
transform: scale(1);
}
.mod-article .banner span:hover{
transform: scale(1.2);
transition: all 0.25s ease-in;
}
.mod-article .banner span:nth-child(7n){
opacity: 0.15;
zoom: 0.6;
}
.mod-article .banner span:nth-child(7n+1){
opacity: 0.35;
zoom: 0.7;
}
.mod-article .banner span:nth-child(7n+2){
opacity: 0.25;
zoom: 0.6;
}
.mod-article .banner span:nth-child(7n+3){
opacity: 0.30;
zoom: 0.9;
}
.mod-article .banner span:nth-child(7n+4){
opacity: 0.45;
zoom: 0.8;
}
.mod-article .banner span:nth-child(7n+5){
opacity: 0.40;
zoom: 0.7;
}
.mod-article .banner span:nth-child(7n+6){
opacity: 0.65;
zoom: 1;
}
.mod-article .hd{
margin-top: -36px;
@ -580,6 +615,9 @@ a:hover{
text-indent: 2em;
}
.mod-app{
margin: 120px 0 80px;
}
.mod-app .hd{
text-align: center;
}
@ -605,8 +643,8 @@ a:hover{
.mod-copy{
position: relative;
margin-bottom: 125px;
padding: 15px 0 45px;
margin-bottom: 120px;
background: rgb(246, 248, 250);
}
.mod-copy::before {
@ -733,8 +771,12 @@ a:hover{
}
@media screen and (max-width: 1020px) {
.header{
margin-bottom: 10px;
.scroll-container{
height: auto;
scroll-snap-type: none;
}
header{
position: fixed;
}
.inner{
max-width: 640px;
@ -749,71 +791,77 @@ a:hover{
}
.mod-panel{
margin-bottom: 25px;
padding-top: 20px;
}
.mod-panel .hd{
.mod-panel .bd{
flex-direction: column;
}
.mod-panel .panel-left,.mod-panel .panel-right{
width: auto;
}
.mod-panel .panel-left{
float: none;
padding-top: 0;
width: auto;
margin-bottom: 15px;
margin-bottom: 20px;
text-align: center;
}
.mod-panel .hd h1{
.mod-panel .panel-left h1{
margin-bottom: 5px;
line-height: 26px;
font-size: 20px;
}
.mod-panel .hd h1 span.name{
.mod-panel .panel-left h1 span.name{
display: inline;
}
.mod-panel .hd p{
.mod-panel .panel-left p{
line-height: 22px;
font-size: 13px;
overflow: hidden;
}
.mod-panel .hd .picture{
.mod-panel .panel-left .picture{
width: auto;
padding-top: 0;
}
.mod-panel .hd .mobile{
.mod-panel .panel-left .mobile{
width: auto;
}
.mod-panel .hd .picture img{
.mod-panel .panel-left .picture img{
width: 256px;
height: 160px;
margin-left: 0;
}
.mod-panel .hd .btn{
.mod-panel .panel-left .btn{
display: block;
margin: 0 auto;
}
.mod-panel .hd .btn span.name{
.mod-panel .panel-left .btn span.name{
padding-right: 0;
background: none;
}
.mod-panel .hd .btn span.qrcode{
.mod-panel .panel-left .btn span.qrcode{
display: none!important;
}
.mod-panel .bd{
.mod-panel .panel-right{
margin-left: 0;
}
.mod-panel .bd .c-hd{
.mod-panel .panel-right .c-hd{
text-align: center;
}
.mod-panel .bd .c-hd ul{
.mod-panel .panel-right .c-hd ul{
overflow-x: auto;
white-space: nowrap;
}
.mod-panel .bd .c-hd li{
.mod-panel .panel-right .c-hd li{
float: none;
display: inline-block;
width: auto;
min-width: 24%
}
.mod-panel .bd .c-hd li a{
.mod-panel .panel-right .c-hd li a{
padding: 0 4px;
}
.mod-panel .bd .c-bd{
.mod-panel .panel-right .c-bd{
height: auto;
}
.mod-panel textarea{
@ -821,7 +869,7 @@ a:hover{
height: 80px;
box-sizing: border-box;
}
.mod-panel .bd p span{
.mod-panel .panel-right p span{
float: left;
width: 50%;
text-align: center;
@ -850,6 +898,15 @@ a:hover{
.mod-article{
margin-bottom: 55px;
}
.mod-article .banner{
height: auto;
padding: 15px;
line-height: 20px;
font-size: 20px;
}
.mod-article .hd{
margin-top: 0;
}
.mod-article .bd{
padding: 15px 0;
}
@ -892,18 +949,20 @@ a:hover{
}
@media screen and (max-width: 640px) {
.mod-panel .inner{
padding: 10px 0;
.mod-panel .panel-right .c-hd{
margin-bottom: 4px;
}
.mod-panel .bd .c-bd{
.mod-panel .panel-right .c-hd li a{
font-size: 14px;
}
.mod-panel .panel-right .c-hd li.active a{
font-size: 16px;
}
.mod-panel .panel-right .c-bd{
padding: 15px 10px;
}
.mod-banner .bd{
height: auto;
padding: 15px;
line-height: 20px;
font-size: 20px;
.mod-panel .panel-right .c-hd li.active a::after{
height: 4px;
}
.mod-intro .hd{

View File

@ -26,21 +26,8 @@
</script>
</head>
<body>
<div class="wrapper">
<div class="mod-bg">
<svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
<defs>
<path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path>
</defs>
<g class="parallax">
<use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(255,255,255,0.4)"></use>
<use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(255,255,255,0.6)"></use>
<use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(255,255,255,0.2)"></use>
<use xlink:href="#gentle-wave" x="48" y="7" fill="rgba(255,255,255,1)"></use>
</g>
</svg>
</div>
<div class="header">
<div class="scroll-container">
<header>
<div class="mod-head">
<div class="inner">
<div class="bd">
@ -57,11 +44,25 @@
</div>
</div>
</div>
</header>
<section class="scroll-item">
<div class="mod-bg">
<svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
<defs>
<path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path>
</defs>
<g class="parallax">
<use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(255,255,255,0.4)"></use>
<use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(255,255,255,0.6)"></use>
<use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(255,255,255,0.2)"></use>
<use xlink:href="#gentle-wave" x="48" y="7" fill="rgba(255,255,255,1)"></use>
</g>
</svg>
</div>
<div class="container">
<div class="mod-panel">
<div class="module mod-panel">
<div class="inner">
<div class="hd">
<div class="bd">
<div class="panel-left">
<h1><span class="name">中國</span><span>親戚關系計算器</span><span class="tag">開源算法</span></h1>
<p>逢年過節遇到三姑六婆,拒絕叫不出口的尷尬!輕鬆搞定親戚關系~</p>
<p>當前親戚稱呼大全已收錄約<b id="count">-</b>條親戚關系</p>
@ -78,7 +79,7 @@
</a>
</div>
</div>
<div class="bd">
<div class="panel-right">
<div class="c-hd">
<ul>
<li class="active"><a href="javascript:;" rel="nofollow">關系找稱呼</a></li>
@ -280,6 +281,9 @@
</div>
</div>
</div>
</div>
</section>
<section class="scroll-item">
<div class="module mod-intro">
<div class="inner">
<div class="hd"><span>功能支持</span></div>
@ -361,9 +365,11 @@
</div>
</div>
</div>
<div class="mod-banner">
</section>
<section class="scroll-item">
<div class="module mod-article">
<div class="inner">
<div class="bd">
<div class="banner">
<span>外甥</span>
<span>姑姑</span>
<span>岳父</span>
@ -403,10 +409,6 @@
<span>孫子</span>
<span>姑丈公</span>
</div>
</div>
</div>
<div class="module mod-article">
<div class="inner">
<div class="hd"><span>關於中國親戚稱呼</span></div>
<div class="bd">
<p>親屬是基於婚姻、血緣和法律擬制而形成的社會關系。親屬關系包括夫妻、父母、子女、兄弟姊妹、祖父母和外祖父母、孫子女和外孫子女、兒媳和公婆、女婿和岳父母、以及其他三代以內的旁系血親,如伯、叔、姑、舅、姨、侄子女、甥子女、堂兄弟姊妹、表兄弟姊妹、姨兄弟姊妹等。</p>
@ -416,6 +418,8 @@
</div>
</div>
</div>
</section>
<section class="scroll-item">
<div class="module mod-copy">
<div class="inner">
<div class="hd"><span>算法開源</span></div>
@ -433,6 +437,8 @@
</div>
</div>
</div>
</section>
<section class="scroll-item">
<div class="module mod-app">
<div class="inner">
<div class="hd"><span>他們都在使用</span></div>
@ -466,7 +472,7 @@
</div>
</div>
</div>
<div class="mod-foot">
<div class="module mod-foot">
<div class="inner">
<div class="hd"><span>😳支持我的開源</span></div>
<div class="bd">
@ -503,7 +509,9 @@
</ul>
</div>
</div>
</div>
<script type="text/javascript" src="https://passer-by.com/public/script/projects.js"></script>
<script type="text/javascript" src="https://passer-by.com/public/script/stat.js"></script>
</section>
</div>
<script type="text/javascript" src="dist/lang/relationship.zh-HK.min.js"></script>
<script type="text/javascript" src="dist/lang/relationship-mode.zh-HK.min.js"></script>
@ -764,7 +772,5 @@
})();
</script>
<script async defer src="https://cdn.bootcdn.net/ajax/libs/github-buttons/2.21.1/buttons.min.js"></script>
<script type="text/javascript" src="https://passer-by.com/public/script/projects.js"></script>
<script type="text/javascript" src="https://passer-by.com/public/script/stat.js"></script>
</body>
</html>