JavaScript轻量日历组件核心是生成6×7日期网格:先算当月1号星期几(getDay)补前导空格,再用new Date(year,month+1,0).getDate()得当月天数,最后补足42格;支持点击选中、年月切换、今日高亮及键盘导航。

用 JavaScript 实现一个轻量日历组件,核心是生成指定年月的完整日期网格(6 行 × 7 列),并支持点击选中日期。不需要依赖框架,纯原生即可完成。
生成月份视图:算出当月1号星期几 + 天数
关键逻辑在于补全上月尾部空白格、渲染当月全部日期、补全下月开头空白格。步骤如下:
- 用 new Date(year, month, 1) 获取当月第一天(注意 month 是 0~11)
- 调用 .getDay() 得到星期几(0=周日,1=周一…6=周六)——这就是第一行需要补几个空格
- 用 new Date(year, month + 1, 0).getDate() 获取当月总天数(如 2024-02 → new Date(2024, 3, 0) 返回 29)
- 从 1 开始循环渲染当月日期;之前补 getDay() 个空单元格;之后补够 42 格(6×7)
渲染 HTML 表格结构:用 p 或 table 都可以
推荐用语义清晰的 p + CSS Grid,更易控制样式和交互。示例结构:
<font size="2"><p class="calendar">
<p class="calendar-header">日 一 二 三 四 五 六</p>
<p class="calendar-days">
<p class="day empty"></p>
<p class="day">1</p>
<p class="day">2</p>
...(共42个p)
</p>
</p></font>登录后复制
给每个 .day 添加 data-date="2024-03-15" 属性,方便后续读取。
立即学习“Java免费学习笔记(深入)”;
标签: css javascript java html ai
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~