guanghulab/style-system/components.js
2026-05-10 13:12:44 +08:00

77 lines
2.7 KiB
JavaScript
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.

// HoloLake StyleKit v1.0 · 主题切换 + Toast + 弹窗交互
document.addEventListener('DOMContentLoaded', function() {
// ========== 1. 主题切换 ==========
var themeToggle = document.getElementById('theme-toggle');
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 = '🌙 深色';
theme-toggle.classList.remove('active');
} else {
html.setAttribute('data-theme', 'light');
themeLabel.textContent = '☀️ 浅色';
theme-toggle.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);
}