78 lines
2.7 KiB
JavaScript
Raw Normal View History

// HoloLake StyleKit v1.0 · 主题切换 + Toast + 弹窗交互
document.addEventListener('DOMContentLoaded', function() {
// ========== 1. 主题切换 ==========
var themeToggle = document.getElementById('themeToggle');
var themeLabel = document.getElementById('themeLabel');
var html = document.documentElement;
var isDark = true;
themeToggle.addEventListener('click', function() {
isDark = !isDark;
if (isDark) {
html.setAttribute('data-theme', 'dark');
themeLabel.textContent = '🌙 深色';
themeToggle.classList.remove('active');
} else {
html.setAttribute('data-theme', 'light');
themeLabel.textContent = '☀️ 浅色';
themeToggle.classList.add('active');
}
showToast('success', '✨ 已切换到' + (isDark ? '深色' : '浅色') + '主题');
});
// ========== 2. 弹窗交互 ==========
var modalOverlay = document.getElementById('modalOverlay');
var openBtn = document.getElementById('openModalBtn');
var closeBtn = document.getElementById('closeModalBtn');
var cancelBtn = document.getElementById('cancelModalBtn');
var confirmBtn = document.getElementById('confirmModalBtn');
function openModal() {
modalOverlay.classList.add('open');
}
function closeModal() {
modalOverlay.classList.remove('open');
}
openBtn.addEventListener('click', openModal);
closeBtn.addEventListener('click', closeModal);
cancelBtn.addEventListener('click', closeModal);
confirmBtn.addEventListener('click', function() {
closeModal();
showToast('success', '✅ 已确认!');
});
// 点击遮罩层关闭
modalOverlay.addEventListener('click', function(e) {
if (e.target === modalOverlay) closeModal();
});
// ========== 3. 卡片点击效果 ==========
var cards = document.querySelectorAll('.card');
cards.forEach(function(card) {
card.addEventListener('click', function() {
var name = card.querySelector('.card-title').textContent;
showToast('info', '👆 你点击了人格体「' + name + '」');
});
});
console.log('HoloLake StyleKit v1.0 · 主题切换+Toast+弹窗已加载 ✨');
});
// ========== Toast提示函数全局 ==========
function showToast(type, message) {
var container = document.getElementById('toastContainer');
var toast = document.createElement('div');
toast.className = 'toast toast-' + type;
toast.textContent = message;
container.appendChild(toast);
// 3秒后自动移除
setTimeout(function() {
if (toast.parentNode) toast.parentNode.removeChild(toast);
}, 3000);
}