js中的小案例(一)
2024-09-06 14:58:23
效果图:
html代码:
<div id="date">
<p>
<span id="prev">上一月</span>
<span id="year">2022</span>
<span id="next">下一月</span>
</p>
<h5 id="month">七月</h5>
<ul id="title">
<li>日</li>
<li>一</li>
<li>二</li>
<li>三</li>
<li>四</li>
<li>五</li>
<li>六</li>
</ul>
<ul id="days"></ul>
</div>
css代码:
*{
margin: 0px;
padding: 0px;
}
#date{
width: 300px;
padding: 10px;
border: 1px solid #000000;
}
#date>p{
display: flex;
}
#date>p>span{
display: inline-block;
width: 100px;
text-align: center;
}
#month{
text-align: center;
font-weight:;
}
#title{
list-style: none;
display: flex;
width: 300px;
padding:;
margin:; }
#title>li{
flex:;
text-align: center;
width: 100%;
background: #C0C0C0;
}
#days{
height: 250px;
margin-top: 10px;
} #days>li{
list-style: none;
text-align: center;
float: left;
width: 42.28px;
height: 42.28px;
}
.active{
color:orange;
}
javascript代码:
let date=new Date();
add();
function add(){ let year=date.getFullYear()
document.getElementById("year").innerText=year
let month=date.getMonth();
let monthArr=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];
document.getElementById("month").innerText=monthArr[month];
// 获取当天的天数
let currentDay=date.getDate()
// 获取每个月的第一天是周几
let week=new Date(year,month,1).getDay();
let html=""
// 代表前面空白的li标签
for(var i=0;i<week;i++){
console.log(i)
html+="<li></li>"
}
// 获取每个月的天数的最后一天
let lastDay=new Date(year,month+1,0).getDate()
for(var i=1;i<=lastDay;i++){
if(i==currentDay){
html+=`<li class="active">${i}</li>`
}else{
html+=`<li>${i}</li>`
}
}
document.getElementById("days").innerHTML=html
}
document.getElementById("prev").onclick=function(){
date.setMonth(date.getMonth()-1)
add();
}
document.getElementById("next").onclick=function(){
date.setMonth(date.getMonth()+1)
add();
}
关键代码是
new Date(year,month,1).getDay() 获取每个月的第一个天是星期几
new Date(year,month+1,0).getDate() 获取每个月的最后一天是几号
最新文章
- Android探索之AIDL实现进程间通信
- dll学习
- 使用 screen 管理你的远程会话
- MySql的日常管理
- Ubuntu12.04安装中文字体(转)
- 导致Asp.Net站点重启的10个原因 ,记录重启原因
- sqlserver2008 如何定时清理索引碎片
- 解决高版本 Google Chrome 扩展程序强制停用问题 -摘自网络
- Modelsim覆盖率
- Failed to install *.apk on device &#39;emulator-5554&#39;: timeout
- python动态类型
- OpenStack Paste.ini详解(二)
- 2018-2019 20175232 实验二《Java面向对象程序设计》实验报告
- Python学习之路基础篇--04Python基础+数据类型
- Ignite(三): Ignite VS Spark
- 区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(更新)
- web端代码提示
- 2017-12-14python全栈9期第一天第五节之变量、常量、注释
- BZOJ5120 [2017国家集训队测试]无限之环 费用流
- did not call through to super.onCreate()