2 Commits

Author SHA1 Message Date
mac
9c9511e817 v2.1.2 — 周选择改为2列一行grid布局 2026-07-24 17:36:50 +08:00
mac
b5dbb13956 v2.1.1 — 月份改成左右翻页选择器 2026-07-24 17:35:56 +08:00
3 changed files with 25 additions and 43 deletions

View File

@@ -146,28 +146,18 @@
renderCalendar(); renderCalendar();
}; };
/** 选择月份 */ /** 切换月份 */
window.selectCalMonth = function(mIdx) { window.changeCalMonth = function(dir) {
calMonth = mIdx; calMonth += dir;
if (calMonth > 11) { calMonth = 0; calYear++; }
if (calMonth < 0) { calMonth = 11; calYear--; }
renderCalendar(); renderCalendar();
}; };
/** 渲染年-月-周选择器 */ /** 渲染年-月-周选择器 */
function renderCalendar() { function renderCalendar() {
document.getElementById('cal-year-label').textContent = calYear + '年'; document.getElementById('cal-year-label').textContent = calYear + '年';
document.getElementById('cal-month-label').textContent = (calMonth + 1) + '月';
// 月份标签
var monthsList = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'];
var today = new Date();
var todayMonth = today.getFullYear() === calYear ? today.getMonth() : -1;
var mHtml = '';
for (var i = 0; i < 12; i++) {
var mc = 'cal-month-btn';
if (i === calMonth) mc += ' active';
if (i === todayMonth) mc += ' today';
mHtml += '<button class="' + mc + '" onclick="selectCalMonth(' + i + ')">' + monthsList[i] + '</button>';
}
document.getElementById('cal-months').innerHTML = mHtml;
// 计算该月包含的周 // 计算该月包含的周
var firstDay = new Date(calYear, calMonth, 1); var firstDay = new Date(calYear, calMonth, 1);

View File

@@ -208,41 +208,25 @@ body {
color: var(--text-dim); color: var(--text-dim);
} }
.cal-nav:hover { background: var(--bg); color: var(--text); } .cal-nav:hover { background: var(--bg); color: var(--text); }
/* 月份按钮 */ /* 月份翻页行 */
.cal-months { .cal-month-header {
display: grid; padding: 4px 14px 8px;
grid-template-columns: repeat(4, 1fr);
gap: 3px;
padding: 0 14px 8px;
} }
.cal-month-btn { .cal-month-header .cal-month-label {
padding: 4px 0; font-size: 14px;
border: 1px solid transparent; font-weight: 600;
border-radius: 6px; color: var(--text);
background: var(--card);
font-size: 11px;
font-weight: 500;
color: var(--text-dim);
cursor: pointer;
text-align: center;
transition: all 0.15s;
font-family: inherit;
} }
.cal-month-btn:hover { border-color: var(--border); color: var(--text); }
.cal-month-btn.active { background: var(--primary); color: #FFF; }
.cal-month-btn.today { border-color: var(--primary); }
.cal-month-btn.today:not(.active) { color: var(--primary); }
/* 周选择 */ /* 周选择 */
.cal-weeks { .cal-weeks {
display: flex; display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 8px; gap: 8px;
padding: 8px 14px 10px; padding: 8px 14px 10px;
justify-content: center;
} }
.cal-week-cell { .cal-week-cell {
width: 44px; height: 42px;
height: 44px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;

View File

@@ -114,7 +114,15 @@
<svg class="icon-sm"><use href="#icon-chevron-right"/></svg> <svg class="icon-sm"><use href="#icon-chevron-right"/></svg>
</button> </button>
</div> </div>
<div class="cal-months" id="cal-months"></div> <div class="cal-header cal-month-header">
<button class="cal-nav" onclick="changeCalMonth(-1)">
<svg class="icon-sm"><use href="#icon-chevron-left"/></svg>
</button>
<span class="cal-month-label" id="cal-month-label">7月</span>
<button class="cal-nav" onclick="changeCalMonth(1)">
<svg class="icon-sm"><use href="#icon-chevron-right"/></svg>
</button>
</div>
<div class="cal-weeks" id="cal-weeks"></div> <div class="cal-weeks" id="cal-weeks"></div>
</div> </div>
</div> </div>