|
|

楼主 |
发表于 2023-12-29 12:26
|
显示全部楼层
只是个练手小作品,全部代码如下:- <style>
- #mydiv {
- margin: 50px auto;
- padding: 6px;
- width: fit-content;
- border: 4px solid rgba(0,0,0,.15);
- border-radius: 6px;
- background: rgba(100,100,100,.6);
- box-shadow: 4px 4px 16px rgba(0,0,0,.25);
- }
- #rlTop {
- display: flex;
- gap: 6px;
- background: #ccc;
- padding: 10px;
- border-radius: 10px 10px 0 0;
- }
- #today {
- text-align: right;
- cursor: pointer;
- user-select: none;
- }
- #rili {
- width: 280px;
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- background: #eee;
- border-radius: 0 0 10px 10px;
- }
- .tbox {
- width: 40px;
- height: 40px;
- text-align: center;
- font: normal 16px/40px sans-serif;
- }
- </style>
- <div id="mydiv">
- <div id="rlTop">
- <select id="sYear"></select>
- <select id="sMonth"></select>
- <span id="today" title="今日日历">今日</span>
- </div>
- <div id="rili"></div>
- </div>
- <script>
- let thisYear = new Date().getFullYear();
- let thisMonth = new Date().getMonth();
- let thisDay = new Date().getDate();
- let m1stDay = (y,m) => new Date(y, m).getDay();
- let mAllDays = (y,m) => new Date(y, m + 1, 0).getDate();
- let calendar = (year,month) => {
- let ar = '日一二三四五六'.split('').map(c => `<div class="tbox">${c}</div>`);
- let output = ar.join('');
- let d = new Date(year,month);
- let y = d.getFullYear(), m = d.getMonth();
- let alldays = mAllDays(y,m);
- let firstday = m1stDay(y,m);
- Array.from({length: alldays + firstday}).forEach((item,key) => {
- let idx = key < firstday ? '' : (key - firstday + 1);
- if(idx == thisDay && month == thisMonth && year == thisYear)
- idx = `<span style="color:red">${idx}</span>`;
- output += `<div class="tbox">${idx}</div>`;
- });
- rili.innerHTML = output;
- };
- let mkYear = () => {
- let ar = [...new Array(10).keys()].map(item => item + 2018);
- ar.forEach((y,k) => {
- let selected = y == new Date().getFullYear() ? 'selected' : '';
- sYear.innerHTML += `<option ${selected} value="${y}">${y}年</option>`;
- });
- };
- let mkMonth = () => {
- Array.from({length: 12}).forEach((m,k) => {
- let selected = k === new Date().getMonth() ? 'selected' : '';
- sMonth.innerHTML += `<option ${selected} value="${k}">${k + 1}月</option>`;
- });
- };
- sYear.onchange = sMonth.onchange = () => calendar(sYear.value,sMonth.value);
- today.onclick = () => {
- sYear.value = thisYear;
- sMonth.value = thisMonth;
- calendar(thisYear,thisMonth);
- };
- calendar(thisYear,thisMonth);
- mkYear();
- mkMonth();
- </script>
复制代码
|
评分
-
| 参与人数 2 | 威望 +100 |
金钱 +200 |
经验 +100 |
收起
理由
|
小辣椒
| + 50 |
+ 100 |
+ 50 |
赞一个! |
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|