• js中的小案例(一)


    效果图:

    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: 400;
                }
                #title{
                    list-style: none;
                    display: flex;
                    width: 300px;
                    padding: 0;
                    margin: 0;
                    
                }
                #title>li{
                    flex: 1;
                    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()  获取每个月的最后一天是几号

  • 相关阅读:
    screen命令
    完全背包问题
    01背包问题
    数组排序使得数组负数在正数左边且按照原来的顺序
    Git 后悔药系列
    Nacos作为注册中心和配置中心
    JDK15都出了,你确定不来了解下JDK8吗?
    WPF创建一个凹凸效果的边框
    vue---splitpane分割
    列表实现拖拽
  • 原文地址:https://www.cnblogs.com/shanchui/p/12812516.html
Copyright © 2020-2023  润新知