feat: 个人记账与预算管理系统 MVP 初始版本
This commit is contained in:
Vendored
+52
@@ -0,0 +1,52 @@
|
||||
// 侧边栏折叠功能
|
||||
(function() {
|
||||
const STORAGE_KEY = 'sidebar-collapsed';
|
||||
|
||||
// 初始化
|
||||
function init() {
|
||||
const sidebar = document.querySelector('.sidebar');
|
||||
const toggleBtn = document.querySelector('.sidebar-toggle');
|
||||
const toggleWrapper = document.querySelector('.sidebar-toggle-wrapper');
|
||||
|
||||
if (!sidebar || !toggleBtn) return;
|
||||
|
||||
// 从 localStorage 恢复状态
|
||||
const isCollapsed = localStorage.getItem(STORAGE_KEY) === 'true';
|
||||
if (isCollapsed) {
|
||||
sidebar.classList.add('collapsed');
|
||||
}
|
||||
|
||||
// 更新tooltip文字
|
||||
updateTooltip(sidebar, toggleWrapper);
|
||||
|
||||
// 绑定点击事件
|
||||
toggleBtn.addEventListener('click', function() {
|
||||
sidebar.classList.toggle('collapsed');
|
||||
const collapsed = sidebar.classList.contains('collapsed');
|
||||
localStorage.setItem(STORAGE_KEY, collapsed);
|
||||
|
||||
// 更新tooltip
|
||||
updateTooltip(sidebar, toggleWrapper);
|
||||
|
||||
// 触发自定义事件
|
||||
const event = new CustomEvent('sidebarToggle', {
|
||||
detail: { collapsed: collapsed }
|
||||
});
|
||||
document.dispatchEvent(event);
|
||||
});
|
||||
}
|
||||
|
||||
// 更新tooltip文字
|
||||
function updateTooltip(sidebar, wrapper) {
|
||||
if (!wrapper) return;
|
||||
const isCollapsed = sidebar.classList.contains('collapsed');
|
||||
wrapper.setAttribute('data-tooltip', isCollapsed ? '展开侧边栏' : '收起侧边栏');
|
||||
}
|
||||
|
||||
// DOM 加载完成后初始化
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', init);
|
||||
} else {
|
||||
init();
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user