ai-intro
35 行
1.0 KiB
JavaScript
35 行
1.0 KiB
JavaScript
document.addEventListener("DOMContentLoaded", () => {
|
|
// 平滑滚动
|
|
document.querySelectorAll('a[href^="#"]').forEach((link) => {
|
|
link.addEventListener("click", (e) => {
|
|
const id = link.getAttribute("href").slice(1);
|
|
const target = document.getElementById(id);
|
|
if (target) {
|
|
e.preventDefault();
|
|
target.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
history.replaceState(null, "", `#${id}`);
|
|
}
|
|
});
|
|
});
|
|
|
|
// 滚动渐入动画
|
|
const observer = new IntersectionObserver(
|
|
(entries) => {
|
|
entries.forEach((entry) => {
|
|
if (entry.isIntersecting) {
|
|
entry.target.style.opacity = "1";
|
|
entry.target.style.transform = "translateY(0)";
|
|
}
|
|
});
|
|
},
|
|
{ threshold: 0.1 }
|
|
);
|
|
|
|
document.querySelectorAll(".card, .tl-item, .app-item, .future-card").forEach((el) => {
|
|
el.style.opacity = "0";
|
|
el.style.transform = "translateY(20px)";
|
|
el.style.transition = "opacity 0.6s ease, transform 0.6s ease";
|
|
observer.observe(el);
|
|
});
|
|
});
|