2025-1-18
This commit is contained in:
2 files changed
+306
No files matched your search
@@ -0,0 +1,2 @@
|
||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Typewriter",[],t):"object"==typeof exports?exports.Typewriter=t():e.Typewriter=t()}("undefined"!=typeof self?self:this,(()=>(()=>{var e={75:function(e){(function(){var t,n,r,o,a,i;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(e.exports=function(){return(t()-a)/1e6},n=process.hrtime,o=(t=function(){var e;return 1e9*(e=n())[0]+e[1]})(),i=1e9*process.uptime(),a=o-i):Date.now?(e.exports=function(){return Date.now()-r},r=Date.now()):(e.exports=function(){return(new Date).getTime()-r},r=(new Date).getTime())}).call(this)},4087:(e,t,n)=>{for(var r=n(75),o="undefined"==typeof window?n.g:window,a=["moz","webkit"],i="AnimationFrame",s=o["request"+i],u=o["cancel"+i]||o["cancelRequest"+i],l=0;!s&&l<a.length;l++)s=o[a[l]+"Request"+i],u=o[a[l]+"Cancel"+i]||o[a[l]+"CancelRequest"+i];if(!s||!u){var c=0,p=0,d=[];s=function(e){if(0===d.length){var t=r(),n=Math.max(0,16.666666666666668-(t-c));c=n+t,setTimeout((function(){var e=d.slice(0);d.length=0;for(var t=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(c)}catch(e){setTimeout((function(){throw e}),0)}}),Math.round(n))}return d.push({handle:++p,callback:e,cancelled:!1}),p},u=function(e){for(var t=0;t<d.length;t++)d[t].handle===e&&(d[t].cancelled=!0)}}e.exports=function(e){return s.call(o,e)},e.exports.cancel=function(){u.apply(o,arguments)},e.exports.polyfill=function(e){e||(e=o),e.requestAnimationFrame=s,e.cancelAnimationFrame=u}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r].call(a.exports,a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var r={};return(()=>{"use strict";n.d(r,{default:()=>C});var e=n(4087),t=n.n(e);const o=function(e){return new RegExp(/<[a-z][\s\S]*>/i).test(e)},a=function(e,t){return Math.floor(Math.random()*(t-e+1))+e};var i="TYPE_CHARACTER",s="REMOVE_CHARACTER",u="REMOVE_ALL",l="REMOVE_LAST_VISIBLE_NODE",c="PAUSE_FOR",p="CALL_FUNCTION",d="ADD_HTML_TAG_ELEMENT",f="CHANGE_DELETE_SPEED",v="CHANGE_DELAY",h="CHANGE_CURSOR",m="PASTE_STRING",y="HTML_TAG";function g(e){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(e)}function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?E(Object(n),!0).forEach((function(t){A(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function b(e){return function(e){if(Array.isArray(e))return T(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return T(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?T(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function S(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,N(r.key),r)}}function A(e,t,n){return(t=N(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e){var t=function(e,t){if("object"!==g(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==g(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===g(t)?t:String(t)}const C=function(){function n(r,g){var E=this;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),A(this,"state",{cursorAnimation:null,lastFrameTime:null,pauseUntil:null,eventQueue:Line truncated
|
||||
//# sourceMappingURL=core.js.map
|
||||
@@ -0,0 +1,304 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Spircape</title>
|
||||
<link rel="icon" type="image/png" href="https://zh.yuazhi.cn/66a390533ee9c.png">
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: 'CustomFont';
|
||||
/* src: url('https://zh.yuazhi.cn/st/MiSans-Medium.woff2') format('woff2'); */
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
font-family: 'CustomFont', Arial, sans-serif;
|
||||
background-color: #f4f4f4;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.dark-mode {
|
||||
background-color: #222;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.hero-section {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: fixed; /* Changed from relative to fixed */
|
||||
top: 50%; /* Centering vertically */
|
||||
left: 50%; /* Centering horizontally */
|
||||
transform: translate(-50%, -50%); /* Adjusting for the center */
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
font-size: 5em;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.scroll-down {
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
left: 20px;
|
||||
font-size: 1.5em;
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
|
||||
@keyframes float {
|
||||
0% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translateY(10px);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.scroll-down.feedback {
|
||||
animation: feedback 0.4s ease-out;
|
||||
}
|
||||
|
||||
@keyframes feedback {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.marquee {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
box-sizing: border-box;
|
||||
background-color: #ffd500;
|
||||
/* 背景颜色和字体颜色 */
|
||||
color: #fff;
|
||||
padding: 10px 0;
|
||||
position: fixed;
|
||||
/* 固定在页面顶部 */
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1000;
|
||||
/* 确保在其他内容上方 */
|
||||
}
|
||||
|
||||
.marquee-content {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
padding-left: 100%;
|
||||
animation: marquee 90s linear infinite;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
/* 使字体加粗 */
|
||||
/* 为了确保浏览器兼容性,添加前缀 */
|
||||
-webkit-animation: marquee 90s linear infinite;
|
||||
-moz-animation: marquee 90s linear infinite;
|
||||
-o-animation: marquee 90s linear infinite;
|
||||
-ms-animation: marquee 90s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes marquee {
|
||||
from {
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: #ffd500;
|
||||
color: #fff;
|
||||
padding: 13px;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
footer a {
|
||||
color: #000000;
|
||||
text-decoration: none;
|
||||
margin: 0 10px;
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
transform: translateX(5px);
|
||||
}
|
||||
|
||||
.contact-info {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
background-color: #e0e0e0;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.contact-info p {
|
||||
margin: 10px 0;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
h1 {
|
||||
font-size: 3em;
|
||||
}
|
||||
}
|
||||
|
||||
.highlight {
|
||||
color: #00B0F0;
|
||||
}
|
||||
|
||||
.website {
|
||||
color: #9369c2;
|
||||
}
|
||||
|
||||
.website a {
|
||||
color: #9369c2;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.website a:hover {
|
||||
color: #2ecc71;
|
||||
}
|
||||
|
||||
.email {
|
||||
color: #2ecc71;
|
||||
}
|
||||
|
||||
.rsn {
|
||||
color: #1d29d0;
|
||||
}
|
||||
|
||||
.qq {
|
||||
color: #e31215;
|
||||
}
|
||||
|
||||
.nihao {
|
||||
color: #2ecc71;
|
||||
}
|
||||
|
||||
.non-clickable {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.contact-label {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #007bff;
|
||||
transition: color 0.6s ease;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #fcfcfc;
|
||||
}
|
||||
|
||||
.slash {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.namek {
|
||||
color: #ff9700;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
/* ... (previous CSS styles) ... */
|
||||
|
||||
/* Add this footer style */
|
||||
footer {
|
||||
color: #000000;
|
||||
padding: 13px;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
/* Make the background transparent */
|
||||
background-color: transparent;
|
||||
/* New styles for centering the text within the footer */
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-top: -150px;
|
||||
}
|
||||
</style>
|
||||
<div class="hero-section">
|
||||
<h1 id="typewriter"></h1>
|
||||
</div>
|
||||
|
||||
<script src="core.js"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
||||
var isDarkMode = darkModeMediaQuery.matches;
|
||||
|
||||
if (isDarkMode) {
|
||||
document.body.classList.add('dark-mode');
|
||||
}
|
||||
|
||||
var typewriter = new Typewriter('#typewriter', {
|
||||
loop: true,
|
||||
delay: 150,
|
||||
});
|
||||
|
||||
typewriter
|
||||
.typeString('<span class="nihao">你好呀~</span>')
|
||||
.pauseFor(1000)
|
||||
.deleteAll()
|
||||
.typeString('<span class="highlight">Spircape<br>灵境</span>')
|
||||
.pauseFor(1000)
|
||||
.deleteAll()
|
||||
.typeString('<span class="rsn">虚中有实</span>')
|
||||
.pauseFor(1000)
|
||||
.deleteAll()
|
||||
.typeString('<span class="namek">实中有虚</span>')
|
||||
.pauseFor(1000)
|
||||
.deleteAll()
|
||||
.typeString('✨请多多关照~')
|
||||
.pauseFor(1000)
|
||||
.deleteAll()
|
||||
.start();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in new issue
Block a user