用js和html制作一个网页版的日历
时间: 2024-11-27 11:09:30 浏览: 0
用 js + html 实现一个网页版日历
5星 · 资源好评率100%
要使用JavaScript和HTML制作一个简单的网页版日历,你可以遵循这些步骤:
1. **HTML结构**:
首先,在HTML文件中创建一个包含月份选择、年份选择以及显示日历的容器。
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>简单日历</title>
<style>
.calendar {
width: 300px;
border: 1px solid #ccc;
padding: 10px;
}
</style>
</head>
<body>
<div class="calendar">
<select id="monthSelect" onchange="showCalendar()">
<option value="1">一月</option>
<!-- 添加其他月份 -->
</select>
<select id="yearSelect" onchange="showCalendar()">
<!-- 添加当前及未来几年的年份 -->
</select>
<table id="calendarTable"></table>
</div>
<script src="calendar.js"></script>
</body>
</html>
```
2. **JavaScript编写**:
创建一个名为`calendar.js`的文件,添加如下JavaScript代码:
```javascript
function showCalendar() {
const month = document.getElementById('monthSelect').value;
const year = document.getElementById('yearSelect').value;
// 使用第三方库(如fullcalendar.js)或自定义算法生成日历表格
generateCalendar(month, year);
}
function generateCalendar(month, year) {
let daysInMonth = new Date(year, month, 0).getDate();
let calendarTable = document.getElementById('calendarTable');
// 清空并重新创建表格
calendarTable.innerHTML = '';
// 表格行和列初始化
let tableBody = document.createElement('tbody');
for (let i = 0; i < 6; i++) {
let row = document.createElement('tr');
for (let j = 0; j < 7; j++) {
let cell = document.createElement('td');
cell.textContent = j + 1;
if (j === 0 || j % 7 === 0) { // 列头
cell.classList.add('header');
} else {
cell.classList.add('day');
}
row.appendChild(cell);
}
tableBody.appendChild(row);
}
// 根据实际月份填充日期
let currentDate = new Date(year, month - 1, 1); // 减1是因为月份从0开始计数
for (let day = 1; day <= daysInMonth; day++) {
let cell = tableBody.querySelector(`td.day:nth-child(${currentDate.getDay() + 1})`);
cell.textContent = day;
currentDate.setDate(currentDate.getDate() + 1);
}
calendarTable.appendChild(tableBody);
}
```
3. **CSS样式**:
根据需要添加一些基本的样式,例如颜色、字体等,来美化日历表单和单元格。
这个例子提供了一个基础框架,你可以根据需求进一步优化它,比如添加点击事件、交互效果,或者集成更强大的日历库(如FullCalendar)。
阅读全文