update
Some checks failed
Deploy / deploy (push) Has been cancelled

This commit is contained in:
2025-12-26 15:14:15 +08:00
parent bd42a8eb80
commit d6d7048ddd

View File

@@ -396,33 +396,7 @@ export function trickOrTreat() {
document.addEventListener("click", clickHandler, true) document.addEventListener("click", clickHandler, true)
}, },
// 效果11: 页面变成彩虹色(色相旋转 // 效果11: 鼠标变成emoji跟随鼠标的emoji
() => {
const style = document.createElement("style")
style.id = "trick-rainbow-style"
style.textContent = `
body {
animation: trickRainbow 3s linear infinite;
}
@keyframes trickRainbow {
0% { filter: hue-rotate(0deg); }
100% { filter: hue-rotate(360deg); }
}
`
document.head.appendChild(style)
},
// 效果12: 所有文字变成大写
() => {
const style = document.createElement("style")
style.id = "trick-uppercase-style"
style.textContent = `
* {
text-transform: uppercase !important;
}
`
document.head.appendChild(style)
},
// 效果13: 鼠标变成emoji跟随鼠标的emoji
() => { () => {
const style = document.createElement("style") const style = document.createElement("style")
style.id = "trick-emoji-cursor-style" style.id = "trick-emoji-cursor-style"
@@ -454,7 +428,7 @@ export function trickOrTreat() {
document.addEventListener("mousemove", moveHandler) document.addEventListener("mousemove", moveHandler)
}, },
// 效果14: 页面元素随机位置 // 效果12: 页面元素随机位置
() => { () => {
const style = document.createElement("style") const style = document.createElement("style")
style.id = "trick-random-position-style" style.id = "trick-random-position-style"
@@ -475,39 +449,75 @@ export function trickOrTreat() {
element.style.transform = `translate(${randomX}px, ${randomY}px)` element.style.transform = `translate(${randomX}px, ${randomY}px)`
}) })
}, },
// 效果15: 页面变成复古效果(老式电视效果 // 效果13: 页面变成3D倾斜效果
() => { () => {
const style = document.createElement("style") const style = document.createElement("style")
style.id = "trick-vintage-style" style.id = "trick-3d-tilt-style"
style.textContent = ` style.textContent = `
body { body {
filter: grayscale(50%) contrast(1.2) brightness(0.9) sepia(0.3) !important; perspective: 1000px;
background: repeating-linear-gradient( transform-style: preserve-3d;
0deg, animation: trick3DTilt 3s ease-in-out infinite alternate;
rgba(0, 0, 0, 0.1),
rgba(0, 0, 0, 0.1) 1px,
transparent 1px,
transparent 2px
) !important;
} }
body::before { @keyframes trick3DTilt {
content: ''; 0% {
position: fixed; transform: perspective(1000px) rotateX(0deg) rotateY(0deg);
top: 0; }
left: 0; 25% {
width: 100%; transform: perspective(1000px) rotateX(15deg) rotateY(-15deg);
height: 100%; }
background: 50% {
radial-gradient(circle at 50% 50%, transparent 0%, rgba(0, 0, 0, 0.1) 100%), transform: perspective(1000px) rotateX(-15deg) rotateY(15deg);
repeating-linear-gradient( }
0deg, 75% {
transparent, transform: perspective(1000px) rotateX(15deg) rotateY(15deg);
transparent 2px, }
rgba(255, 255, 255, 0.03) 2px, 100% {
rgba(255, 255, 255, 0.03) 4px transform: perspective(1000px) rotateX(-15deg) rotateY(-15deg);
); }
pointer-events: none; }
z-index: 9999; `
document.head.appendChild(style)
},
// 效果14: 页面所有链接失效
() => {
const clickHandler = (e: MouseEvent) => {
const target = e.target as HTMLElement
// 检查是否是链接或按钮
if (
target.tagName === "A" ||
target.closest("a") ||
(target.tagName === "BUTTON" && !target.closest("n-button"))
) {
e.preventDefault()
e.stopPropagation()
e.stopImmediatePropagation()
return false
}
}
document.addEventListener("click", clickHandler, true)
},
// 效果15: 页面变成波浪效果
() => {
const style = document.createElement("style")
style.id = "trick-wave-style"
style.textContent = `
body {
animation: trickWave 2s ease-in-out infinite;
}
@keyframes trickWave {
0%, 100% {
transform: translateY(0) scaleY(1);
}
25% {
transform: translateY(-10px) scaleY(1.02);
}
50% {
transform: translateY(0) scaleY(1);
}
75% {
transform: translateY(10px) scaleY(0.98);
}
} }
` `
document.head.appendChild(style) document.head.appendChild(style)