front/submission/index.html
2024-11-18 22:13:37 +08:00

955 lines
34 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>NEU小站</title>
<meta name="keywords" content="">
<meta name="description" content="用户中心
邮箱:
密码:
登录
未注册的用户将自动注册。为确保您是东北大学师生注册后需进行NEU校园网验证才能激活账户。
您未完成NEU校园网认证请前往认证
前往验证
退出登录
我要投稿
个人信息
我的内容
退出登录
修改
Nickname
V
V
修改
email@example.com
请注意:由于浏览器缓存,修改头像或昵称后网站更新可能有延迟。
我的东币
手机验证
发送验证码
验证
取消
投稿功能升级优化中,敬请期待&hellip;">
<meta name="author" content="
V
V
">
<link rel="canonical" href="https://xn--xhq44jb2fzpc.com/submission/">
<link rel="stylesheet" href="/css/custom.css">
<link rel="stylesheet" href="/css/dl.css">
<link crossorigin="anonymous" href="/assets/css/stylesheet.css" rel="preload stylesheet" as="style">
<link rel="icon" href="https://xn--xhq44jb2fzpc.com/icons/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://xn--xhq44jb2fzpc.com/icons/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://xn--xhq44jb2fzpc.com/icons/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://xn--xhq44jb2fzpc.com/icons/apple-touch-icon.png">
<link rel="mask-icon" href="https://xn--xhq44jb2fzpc.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://xn--xhq44jb2fzpc.com/submission/index.xml">
<link rel="alternate" hreflang="en" href="https://xn--xhq44jb2fzpc.com/submission/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript>
<meta property="og:title" content="" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://xn--xhq44jb2fzpc.com/submission/" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content=""/>
<meta name="twitter:description" content=""/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "",
"item": "https://xn--xhq44jb2fzpc.com/submission/"
}
]
}
</script>
<link rel="stylesheet" href="/css/custom.css">
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://xn--xhq44jb2fzpc.com/" accesskey="h" title="NEU小站 (Alt + H)">NEU小站</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://xn--xhq44jb2fzpc.com/" title="主页">
<span>主页</span>
</a>
</li>
<li>
<a href="https://course.%e4%b8%9c%e5%8c%97%e5%a4%a7%e5%ad%a6.com" title="课程评分"target="_blank">
<span>课程评分</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/strategy/" title="攻略指南">
<span>攻略指南</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/rapidlinks/%E5%BF%AB%E9%80%9F%E9%93%BE%E6%8E%A5/" title="快速链接">
<span>快速链接</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/resources/" title="资源共享">
<span>资源共享</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/search/" title="搜索">
<span>搜索</span>
</a>
</li>
<li>
<a href="https://f.wps.cn/g/QuaZnovL/" title="意见反馈"target="_blank">
<span>意见反馈</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/submission/" title="用户中心">
<span class="active">用户中心</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/log/" title="更新日志">
<span>更新日志</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/intro/" title="关于">
<span>关于</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<script src="/js/card.js"></script>
<link rel="stylesheet" href="/css/card.css">
<div class="post-content">
<script>
async function fetchNoCache(url) {
const timestamp = new Date().getTime();
const noCacheUrl = `${url}?timestamp=${timestamp}`;
return fetch(noCacheUrl);
}
</script>
<div id="login">
<h1>用户中心</h1>
<form id="loginForm">
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<button type="submit">登录</button>
</form>
<div id="message"></div>
<div class="center-text">
<br>未注册的用户将自动注册。为确保您是东北大学师生注册后需进行NEU校园网验证才能激活账户。
</div>
</div>
<!-- 自定义模态框 -->
<div id="customModal" style="display: none; position: fixed; z-index: 1000; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 20px; background-color: white; border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0,0,0,0.5);">
<p>您未完成NEU校园网认证请前往认证</p>
<button id="confirmButton">前往验证</button>
<button id="logoutButton">退出登录</button>
</div>
<div id="modalOverlay" style="display: none; position: fixed; z-index: 999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5);"></div>
<style>
/* 模态框容器 */
#customModal {
display: none;
position: fixed;
z-index: 1000;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
padding: 20px;
background-color: white;
border: 1px solid #ccc;
box-shadow: 0 0 10px rgba(0,0,0,0.5);
text-align: center;
color: #000000;
}
/* 背景遮罩层 */
#modalOverlay {
display: none;
position: fixed;
z-index: 999;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
/* 按钮的基础样式 */
#customModal button {
padding: 10px 20px;
margin: 10px;
font-size: 16px;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease, transform 0.1s ease;
}
/* 确认按钮样式 */
#confirmButton {
background-color: #007bff;
color: #ffffff;
}
/* 退出登录按钮样式 */
#logoutButton {
background-color: #dc3545;
color: #ffffff;
}
/* 鼠标悬停时的样式 */
#customModal button:hover {
transform: translateY(-3px);
}
/* 按钮点击时的样式 */
#customModal button:active {
transform: translateY(1px);
}
/* 暗黑模式下的模态框背景和文字颜色 */
.dark #customModal {
background-color: #333333 !important;
border-color: #444444 !important;
color: #ffffff !important;
}
/* 暗黑模式下的按钮样式 */
.dark #confirmButton {
background-color: #4444ff;
}
.dark #logoutButton {
background-color: #ff4444;
}
.dark #customModal button:hover {
transform: translateY(-3px);
}
.dark #customModal button:active {
transform: translateY(1px);
}
</style>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
<script src="https://download.xn--xhq44jb2fzpc.com/password/crypto-js.js"></script>
<style>
.center-text {
text-align: center;
margin-top: 10px;
font-size: 14px;
}
#login {
max-width: 400px;
margin: 0 auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
/* background-color: #fff; */
}
#login h1 {
text-align: center;
margin-bottom: 20px;
}
#login label {
display: block;
margin-bottom: 8px;
font-weight: bold;
}
#login input[type="email"],
#login input[type="password"] {
width: 100%;
padding: 10px;
margin-bottom: 20px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.dark #login input[type="email"],
.dark #login input[type="password"] {
color: white;
}
#login button {
width: 100%;
padding: 10px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 4px;
font-size: 16px;
cursor: pointer;
}
#login button:hover {
background-color: #45a049;
}
</style>
<div id="navContainer" class="navContainer" style="display: none">
<button class="navButton" id="我要投稿" onclick="showSubmission()">我要投稿</button>
<button class="navButton" id="个人信息" onclick="showMyInfo()">个人信息</button>
<button class="navButton" id="我的内容" onclick="showMyContent()">我的内容</button>
</div>
<p><button id="logout" onclick="logout()" style="display: none">退出登录</button></p>
<style>
/* 基本样式 */
.navContainer {
display: flex;
justify-content: space-around;
align-items: center;
width: 100%; /* 容器宽度设置为100% */
padding: 0 20px;
margin: 20px auto; /* 水平居中 */
margin-left: 165px;
}
.navButton {
padding: 10px 20px;
border: none;
background-color: #f8f8f8;
cursor: pointer;
transition: background-color 0.3s;
outline: none; /* 移除焦点时的外边框 */
}
.navButton.selected {
background-color: #4CAF50; /* 选中按钮的绿色背景 */
color: white;
}
/* 移动端样式 */
@media (max-width: 768px) {
.navContainer {
flex-direction: column;
align-items: center; /* 确保按钮在移动端居中对齐 */
width: 100%; /* 容器在移动端宽度为100% */
margin-left: 0;
}
.navButton {
width: 90%; /* 将按钮宽度设置为容器宽度的90%,可以根据需要调整 */
padding: 15px;
font-size: 18px;
margin: 5px 0;
}
}
/* Dark mode styles */
.dark .navContainer {
background-color: rgb(29,30,32); /* Darker background for the container */
}
.dark .navButton {
background-color: #555; /* Dark background for buttons */
color: #ddd; /* Light text for readability */
border-color: #666; /* Dark border for contrast */
}
.dark .navButton.selected {
background-color: #00897B; /* A different color for selected state */
color: #fff; /* White text for selected button */
}
#logout {
display: block;
margin: 20px auto; /* 水平居中 */
padding: 10px 20px;
background-color: red; /* 默认红色背景 */
color: white;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s ease, transform 0.3s ease; /* 渐变效果 */
}
/* 悬浮时的样式 */
#logout:hover {
background-color: #cc0000; /* 浅红色背景 */
transform: scale(1.05); /* 放大 */
}
/* 点击时的样式 */
#logout:active {
background-color: #cc0000; /* 深红色背景 */
transform: scale(0.95); /* 点击时稍微缩小 */
}
.medal {
width: 19px; /* 奖章宽度 */
height: 19px; /* 奖章高度 */
background-image: url('data:image/svg+xml,%3Csvg%20width%3D%22517%22%20height%3D%22517%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20xml%3Aspace%3D%22preserve%22%20overflow%3D%22hidden%22%3E%3Cdefs%3E%3ClinearGradient%20x1%3D%22776.063%22%20y1%3D%22666.491%22%20x2%3D%22534.385%22%20y2%3D%22345.773%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill0%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23EAEBFF%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23CECFFF%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22661.744%22%20y1%3D%22399.079%22%20x2%3D%22767.518%22%20y2%3D%22582.285%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill1%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23807FFB%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23ABAAFF%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22435.567%22%20y1%3D%22583.723%22%20x2%3D%22526.269%22%20y2%3D%22389.212%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill2%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23ABAAFF%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23807FFB%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22598.059%22%20y1%3D%22501.695%22%20x2%3D%22598.059%22%20y2%3D%22190.948%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill3%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%236666F2%22/%3E%3Cstop%20offset%3D%220.992%22%20stop-color%3D%22%238E8EFF%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%238E8EFF%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22598.326%22%20y1%3D%22455.063%22%20x2%3D%22598.326%22%20y2%3D%22231.069%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill4%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%239392FD%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23B3B3FF%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22598.326%22%20y1%3D%22287.059%22%20x2%3D%22598.326%22%20y2%3D%22397.6%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill5%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23FDFDFF%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23F3F3FF%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg%20transform%3D%22translate%28-339%20-129%29%22%3E%3Cpath%20d%3D%22M417.268%20129%20777.732%20129C820.836%20129%20855.874%20164.038%20855.874%20207.142L855.874%20567.606C855.874%20610.71%20820.836%20645.748%20777.732%20645.748L417.268%20645.748C374.164%20645.748%20339.126%20610.71%20339.126%20567.606L339.126%20207.142C339.126%20164.038%20374.164%20129%20417.268%20129Z%22%20fill%3D%22%23F0F1FF%22/%3E%3Cpath%20d%3D%22M855.37%20365.948%20693.539%20225.796%20387.776%20557.271%20477.262%20646%20777.479%20645.748C820.584%20645.748%20855.622%20610.71%20855.622%20567.606L855.37%20365.948Z%22%20fill%3D%22url%28%23fill0%29%22/%3E%3Cpath%20d%3D%22M658.754%20401.238%20661.526%20399.221%20729.586%20417.623C731.098%20418.127%20732.106%20418.631%20732.863%20420.143L809.745%20549.456C812.77%20555.002%20806.468%20561.304%20801.426%20557.523L743.45%20532.315C740.173%20530.551%20736.896%20533.324%20735.888%20536.601L731.602%20598.61C732.611%20605.164%20724.04%20607.937%20720.259%20602.644L637.327%20463.752C636.319%20462.491%20636.067%20460.979%20636.571%20459.467L658.754%20401.238Z%22%20fill%3D%22url%28%23fill1%29%22/%3E%3Cpath%20d%3D%22M558.429%20459.467C558.933%20460.979%20558.681%20462.491%20557.673%20463.752L474.741%20602.644C470.96%20607.937%20462.389%20605.164%20463.398%20598.61L459.112%20536.601C458.104%20533.324%20454.827%20530.551%20451.55%20532.315L393.574%20557.523C388.532%20561.304%20381.978%20555.002%20385.255%20549.456L462.137%20420.143C463.146%20418.883%20463.902%20418.127%20465.414%20417.623L533.474%20399.221%20536.246%20401.238%20558.429%20459.467Z%22%20fill%3D%22url%28%23fill2%29%22/%3E%3Cpath%20d%3D%22M753.281%20346.286C753.281%20432.043%20683.761%20501.563%20598.004%20501.563%20512.247%20501.563%20442.728%20432.043%20442.728%20346.286%20442.728%20260.529%20512.247%20191.01%20598.004%20191.01%20683.761%20191.01%20753.281%20260.529%20753.281%20346.286Z%22%20fill%3D%22url%28%23fill3%29%22/%3E%3Cpath%20d%3D%22M710.176%20343.009C710.176%20404.821%20660.068%20454.929%20598.256%20454.929%20536.444%20454.929%20486.336%20404.821%20486.336%20343.009%20486.336%20281.198%20536.444%20231.089%20598.256%20231.089%20660.068%20231.089%20710.176%20281.198%20710.176%20343.009Z%22%20fill%3D%22url%28%23fill4%29%22/%3E%3Cpath%20d%3D%22M627.497%20398.465%20600.021%20383.593C598.508%20382.837%20596.24%20382.837%20594.727%20383.593L567.251%20398.465C563.47%20400.734%20558.429%20396.953%20559.185%20392.667L564.479%20362.419C564.479%20360.906%20564.479%20358.638%20562.966%20357.125L540.784%20335.699C537.759%20332.674%20539.271%20326.877%20543.809%20326.12L574.813%20321.583C576.326%20321.583%20578.595%20320.071%20579.351%20318.558L593.467%20290.326C595.735%20285.789%20601.533%20285.789%20603.046%20290.326L617.162%20318.558C617.918%20320.071%20619.43%20321.583%20621.699%20321.583L652.704%20326.12C657.241%20326.877%20659.258%20331.918%20655.729%20335.699L633.546%20357.125C632.034%20358.638%20631.278%20360.15%20632.034%20362.419L637.327%20392.667C636.319%20396.953%20631.782%20400.734%20627.497%20398.465Z%22%20fill%3D%22url%28%23fill5%29%22/%3E%3C/g%3E%3C/svg%3E');
background-size: contain; /* 根据需要调整尺寸 */
background-repeat: no-repeat;
}
</style>
<div id="myinfo" style="display: none; align-items: center; padding: 20px;">
<div class="profile-pic-container">
<img id="myinfoavatar" src="https://download.xn--xhq44jb2fzpc.com/avatar/default.png" alt="Profile Avatar" class="profile-pic">
<div class="overlay">
<span class="text">修改</span>
<input type="file" id="fileInput" accept="image/*" style="display: none;" onchange="uploadAvatar(event)">
</div>
</div>
<div class="info">
<div style="display: flex; align-items: center;">
<h3 id="nickname">Nickname<a hidden class="anchor" aria-hidden="true" href="#nickname">#</a></h3>
<div class="icon-wrapper" style="position: relative;">
<span class="verified-icon" id="invited-icon" style="display: none;">
<svg class="verified-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
<circle cx="12" cy="12" r="12" fill="purple"/>
<text class="verified-text" x="12" y="16" dy="0.1em">V</text>
</svg>
</span>
<span class="verified-icon" id="verified-icon" style="display: none;">
<svg class="verified-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
<circle cx="12" cy="12" r="12" fill="gold"/>
<text class="verified-text" x="12" y="16" dy="0.1em">V</text>
</svg>
</span>
<span class="medal" id="medal" title="小站奖章" style="display: none; margin-left: 6px; vertical-align: -3px;"></span>
<div class="tooltip" id="tooltip">
<div class="tooltip-title" id="tooltip-title"></div>
<div class="tooltip-content" id="tooltip-content"></div>
</div>
</div>
<button id="editNicknameBtn">修改</button>
</div>
<p id="userEmail">email@example.com</p>
<p id="note">请注意:由于浏览器缓存,修改头像或昵称后网站更新可能有延迟。</p>
</div>
</div>
<style>
.icon-wrapper {
position: relative; /* 确保 tooltip 以此为参考点 */
}
.verified-icon {
display: inline-flex;
align-items: center;
margin-left: 10px;
transform: translateY(2px);
margin-top: 12px;
}
.verified-svg {
width: 16px;
height: 16px;
vertical-align: middle;
}
.verified-text {
fill: white;
font-family: 'Arial', sans-serif;
font-size: 16px;
text-anchor: middle;
font-weight: normal;
}
.tooltip {
position: absolute;
/* left: 55%; 调整left值使tooltip向右移动 */
transform: translateX(-45%) translateY(-10px); /* 初始状态稍微向上偏移10px */
margin-top: 10px; /* 与图标之间的距离 */
padding: 10px;
border-radius: 8px;
background-color: #fff;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
opacity: 0;
transition: opacity 0.3s ease, transform 0.3s ease; /* 添加过渡效果 */
width: 250px; /* 显式设置宽度 */
height: auto; /* 或根据内容调整高度 */
z-index: 100;
top: 100%; /* 放置在父元素的底部 */
margin-left: 40px; /* 根据需要调整 */
pointer-events: none; /* 不接收鼠标事件 */
}
.tooltip.show {
opacity: 1;
transform: translateX(-45%) translateY(0); /* 显示时将Y轴偏移恢复为0 */
}
.tooltip-title {
font-weight: bold;
margin-bottom: 8px;
}
.tooltip-content {
font-size: 14px;
color: #333;
}
/* 夜间模式 */
.dark .tooltip {
background-color: #333;
color: #f2f2f2;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}
.dark .tooltip-title {
color: #fff;
}
.dark .tooltip-content {
color: #ddd;
}
.profile-pic-container {
position: relative;
width: 100px;
height: 100px;
margin-right: 20px;
color: rgb(245,245,245);
}
.profile-pic {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
box-shadow: 0 4px 8px rgba(245,245,245,0.1); /* Light mode shadow */
transition: box-shadow 0.3s;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.6); /* Black, semi-transparent background */
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
opacity: 0;
transition: opacity 0.3s;
cursor: pointer;
}
.overlay:hover {
opacity: 1;
}
.overlay .text {
color: white;
font-size: 16px;
}
.info {
display: flex;
flex-direction: column;
}
.dark .profile-pic {
box-shadow: 0 4px 8px rgba(29,30,32,0.1); /* Night mode shadow */
}
#editNicknameBtn {
background-color: #4CAF50; /* 绿色背景 */
margin-top: 10px;
color: white; /* 白色文字 */
border: none; /* 无边框 */
padding: 5px 10px; /* 内边距 */
margin-left: 15px; /* 左边距 */
cursor: pointer; /* 鼠标指针 */
border-radius: 4px; /* 圆角 */
}
#editNicknameBtn:hover {
background-color: #45a049; /* 悬停时稍微变暗 */
}
/* 夜间模式 */
.dark #editNicknameBtn {
background-color: #333; /* 深色背景 */
color: #ddd; /* 浅色文字 */
}
.dark #editNicknameBtn:hover {
background-color: #555; /* 悬停时稍微变亮 */
}
</style>
<div id="mysubmission" style="display: none">
</div>
<div id="mycoin" style="display: none">
<h2>我的东币</h2>
<div id="coin-content"></div>
<!-- 模态框 -->
<div id="verification-modal" class="modal">
<div class="modal-content">
<h2>手机验证</h2>
<!-- <label for="phone-number">手机号:</label> -->
<input type="text" id="phone-number" placeholder="请输入手机号">
<!-- <label for="verification-code">验证码:</label> -->
<input type="text" id="verification-code" placeholder="请输入验证码">
<button id="send-code-btn">发送验证码</button>
<button id="verify-btn">验证</button>
<button id="cancel-btn">取消</button>
<p id="modal-message"></p>
</div>
</div>
</div>
<div id="submission-area" style="display: none">
<p>投稿功能升级优化中,敬请期待&hellip;</p>
</div>
<script src="https://download.xn--xhq44jb2fzpc.com/password/marked.min.js"></script>
<style>
#section {
display: "inline"
font-size: 24px;
height: 30px;
width: 90px;
}
.simpleInput {
width: 400px;
}
.Button {
background-color: #4CAF50; /* 绿色背景 */
border: none;
color: white;
padding: 10px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
border-radius: 4px; /* 圆角 */
transition: background-color 0.3s; /* 过渡效果 */
}
.Button:hover {
background-color: #45a049; /* 鼠标悬停时的背景色 */
}
.dark .simpleInput, .dark #input {
color: rgb(196,196,197);
}
.dark #preview {
background-color: rgb(29,30,32);
}
.button-container {
display: flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中(如果需要) */
}
</style>
<link rel="stylesheet" href="https://download.xn--xhq44jb2fzpc.com/upload/simplemde.min.css">
<link rel="stylesheet" href="/css/coin.css">
<script src="https://download.xn--xhq44jb2fzpc.com/upload/simplemde.min.js?v=1.0.4"></script>
<script src="https://download.xn--xhq44jb2fzpc.com/upload/submission.min.js?v=2.1.1"></script>
<!-- <script src="/js/submission.js"></script> -->
<script src="https://download.xn--xhq44jb2fzpc.com/upload/coin.min.js?v=1.0.6"></script>
<!-- <script src="/js/coin.js"></script> -->
</div>
</main>
<footer class="footer">
<span>&copy; 2024 <a href="https://xn--xhq44jb2fzpc.com/">NEU小站</a></span> ·
<a href="/intro" target="_blank">
联系网站管理员
</a>
<div>
<span style="white-space: nowrap;">
<img src="https://beian.mps.gov.cn/web/assets/logo01.6189a29f.png" alt="公安标识" style="vertical-align: middle; height: 16px; display: inline-block;">
<a href="https://beian.mps.gov.cn/" target="_blank">
赣公网安备36090202000259号</a>
&nbsp;|&nbsp;
<a href="https://beian.miit.gov.cn/" target="_blank">赣ICP备2024039267号-1</a>
</span>
</div>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<style>
</style>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
document.addEventListener('DOMContentLoaded', function() {
var emberContainer = document.getElementById('ember-container');
emberContainer.addEventListener('mouseenter', function() {
var qrCode = document.getElementById('qr-code');
qrCode.classList.remove('hidden');
});
emberContainer.addEventListener('mouseleave', function() {
var qrCode = document.getElementById('qr-code');
qrCode.classList.add('hidden');
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$']],
displayMath: [['$$','$$']],
processEscapes: true,
processEnvironments: true,
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
TeX: { equationNumbers: { autoNumber: "AMS" },
extensions: ["AMSmath.js", "AMSsymbols.js"] }
}
});
MathJax.Hub.Queue(function() {
var all = MathJax.Hub.getAllJax(), i;
for(i = 0; i < all.length; i += 1) {
all[i].SourceElement().parentNode.className += ' has-jax';
}
});
</script>
<style>
code.has-jax {
font: inherit;
font-size: 100%;
background: inherit;
border: inherit;
color: #515151;
}
</style>
</body>
</html>