<!-- 本DIY代码来自于 https://diy.zhongzhipian.top -->
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>验证</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Microsoft YaHei', sans-serif;
}
body {
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background: #090b10;
color: #fff;
overflow: hidden;
}
.scene {
position: relative;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
perspective: 1000px;
}
.grid {
position: fixed;
width: 200%;
height: 200vh;
top: -50vh;
left: -50%;
background-image:
linear-gradient(transparent 95%, rgba(0, 195, 255, 0.1) 95%),
linear-gradient(90deg, transparent 95%, rgba(0, 195, 255, 0.1) 95%);
background-size: 40px 40px;
transform: perspective(500px) rotateX(60deg);
animation: grid 20s linear infinite;
}
@keyframes grid {
to {
transform: perspective(500px) rotateX(60deg) translateY(-40px);
}
}
.container {
position: relative;
width: 400px;
z-index: 1;
transform-style: preserve-3d;
animation: containerFloat 6s ease-in-out infinite;
}
@keyframes containerFloat {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-20px); }
}
.card {
position: relative;
padding: 40px;
background: rgba(16, 20, 30, 0.8);
border: 1px solid rgba(0, 195, 255, 0.2);
border-radius: 20px;
backdrop-filter: blur(10px);
box-shadow:
0 0 30px rgba(0, 195, 255, 0.1),
inset 0 0 30px rgba(0, 195, 255, 0.05);
overflow: hidden;
}
.card::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(
45deg,
transparent,
rgba(0, 195, 255, 0.05),
transparent
);
transform: rotate(45deg);
animation: shine 4s linear infinite;
}
@keyframes shine {
0% { transform: rotate(45deg) translateY(-100%); }
100% { transform: rotate(45deg) translateY(100%); }
}
.title {
font-size: 28px;
font-weight: 700;
text-align: center;
margin-bottom: 30px;
color: #fff;
text-shadow: 0 0 10px rgba(0, 195, 255, 0.5);
position: relative;
}
.input-container {
position: relative;
margin-bottom: 30px;
}
.input-field {
width: 100%;
padding: 15px 20px;
background: rgba(0, 195, 255, 0.05);
border: 1px solid rgba(0, 195, 255, 0.2);
border-radius: 10px;
color: #fff;
font-size: 16px;
letter-spacing: 3px;
text-align: center;
transition: all 0.3s ease;
}
.input-field:focus {
outline: none;
border-color: rgba(0, 195, 255, 0.5);
box-shadow: 0 0 20px rgba(0, 195, 255, 0.2);
}
.input-field::placeholder {
color: rgba(255, 255, 255, 0.3);
}
.verify-btn {
width: 100%;
padding: 15px;
background: rgba(0, 195, 255, 0.1);
border: 1px solid rgba(0, 195, 255, 0.2);
border-radius: 10px;
color: #fff;
font-size: 16px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.verify-btn:hover {
background: rgba(0, 195, 255, 0.2);
border-color: rgba(0, 195, 255, 0.4);
box-shadow: 0 0 30px rgba(0, 195, 255, 0.2);
}
.verify-btn::after {
content: '';
position: absolute;
width: 30px;
height: 200px;
background: rgba(255, 255, 255, 0.2);
transform: rotate(45deg);
left: -100px;
transition: 0.5s;
}
.verify-btn:hover::after {
left: 120%;
}
.status {
margin-top: 20px;
text-align: center;
font-size: 14px;
opacity: 0;
transition: all 0.3s ease;
}
.status.success {
color: #00ff9d;
opacity: 1;
text-shadow: 0 0 10px rgba(0, 255, 157, 0.5);
}
.status.error {
color: #ff4d4d;
opacity: 1;
text-shadow: 0 0 10px rgba(255, 77, 77, 0.5);
}
.scanner {
position: absolute;
width: 100%;
height: 2px;
background: rgba(0, 195, 255, 0.5);
top: 0;
box-shadow: 0 0 10px rgba(0, 195, 255, 0.5);
animation: scan 2s ease-in-out infinite;
}
@keyframes scan {
0% { top: 0; }
100% { top: 100%; }
}
.corner {
position: absolute;
width: 10px;
height: 10px;
border: 2px solid rgba(0, 195, 255, 0.5);
}
.corner-tl { top: -1px; left: -1px; border-right: none; border-bottom: none; }
.corner-tr { top: -1px; right: -1px; border-left: none; border-bottom: none; }
.corner-bl { bottom: -1px; left: -1px; border-right: none; border-top: none; }
.corner-br { bottom: -1px; right: -1px; border-left: none; border-top: none; }
@media (max-width: 480px) {
.container {
width: 90%;
max-width: 360px;
}
.card {
padding: 30px 20px;
}
.title {
font-size: 24px;
}
}
</style>
</head>
<body>
<div class="scene">
<div class="grid"></div>
<div class="container">
<div class="card">
<div class="scanner"></div>
<div class="corner corner-tl"></div>
<div class="corner corner-tr"></div>
<div class="corner corner-bl"></div>
<div class="corner corner-br"></div>
<h1 id="title" class="title">系统验证</h1>
<div class="input-container">
<input type="text" class="input-field" placeholder="请输入卡密" maxlength="32" id="code">
</div>
<button onclick="Call_Verify(code.value);" class="verify-btn">验证</button>
<div class="status" id="status"></div>
</div>
</div>
</div>
<script>
document.getElementById("title").innerHTML = PanGolin.GetTitle();
document.getElementById("notice").innerHTML = PanGolin.GetNotice();
document.getElementById("Query_Trial").innerHTML = PanGolin.Is_Trial() ? "试用" : "查码";
document.getElementById("Pay").style.display = PanGolin.Is_Pay() ? "block" : "none";
function Call_Verify(data) {
PanGolin.Verify(data);
}
function Call_Query_Trial(data) {
if (PanGolin.Is_Trial()) PanGolin.Trial();
else PanGolin.Query(data);
}
function Call_Pay() {
PanGolin.Pay();
}
function mStart(obj) {
obj.style.opacity = "0.8";
}
function mUp(obj) {
obj.style.opacity = "1";
}
</script>
</body>
</html>
<!-- 本DIY代码来自于 https://diy.zhongzhipian.top -->