js 简单日历

  • 看效果图


    日历.png
  • 代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js 简单日历</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .calendar{
            border-radius: 10px;
            width: 400px;
            margin:100px auto 0;
            box-shadow: 0 0 15px 5px #888;
            padding: 20px 0;
            box-sizing: border-box;
        }
        .calendar>ul{
            display: flex;
            justify-content: space-around;
            margin-bottom: 20px;
            color: #4A8AF4;
        }
        ul .month:hover{
            color: #DD4F43;
            cursor: pointer;
        }
        .calendar dl{
            display:flex;
            text-align:center;
            height: 40px;
            line-height: 40px;
            color:#888;
            font-weight:bold;
        }
        dl dd{
            width: 14.3%;
        }
        .calendar ol{
            display: flex;
            flex-wrap: wrap; 
        }
        ol li{
            width: 14.28%;
            text-align:center;
            height: 40px;
            line-height: 40px;
            box-sizing: border-box;
            border: #fff 2px solid;
        }
        ol .hover:hover{
            border: #DD4F43 2px solid;
        }
        .today{
            color: #DD4F43;
            font-weight: bold;
        }
    </style>
   
</head>
<body>
    <div class="calendar">
        <ul>
            <li class="month" onclick='prev()'>< 上一月</li>
            <li class='date-show'></li>
            <li class="month" onclick='next()'>下一月 ></li>
        </ul>
        <dl>
            <dd>一</dd>
            <dd>二</dd>
            <dd>三</dd>
            <dd>四</dd>
            <dd>五</dd>
            <dd>六</dd>
            <dd>日</dd>
        </dl>
        <ol></ol>
    </div>
<script type="text/javascript">
    var object = {}
    var arr = [1,2,3,4,5,6,7]
    var newDate = new Date();
    var year = newDate.getFullYear();
    var month = newDate.getMonth();
    var monthSub = month;
    var date = newDate.getDate();
    var dateShow = document.getElementsByClassName('date-show')[0];
    function getMyMonth(mon) {
        var lastDay = new Date(year,mon+1,0).getDate();
        var weekNum = new Date(year,mon,1).getDay();
        let y = new Date(year,mon).getFullYear()
        let m = new Date(year,mon).getMonth()
        dateShow.innerText = y+"年"+(m+1)+"月"
        var prevDays = '';
        var days = '';
        if(weekNum == 0) weekNum = 7;
        for(i = 1; i < weekNum; i ++){
            prevDays += "<li></li>"
        }
        for(i = 1; i <= lastDay; i ++){
            if(y == year && m == month && i == date){
                days += "<li class='today hover'>" + i + "</li>"
            }else{
                days += "<li class='hover'>" + i + "</li>"
            }
            
        }
        var ol = document.getElementsByTagName('ol')[0];
        ol.innerHTML = prevDays + days;
    }
    getMyMonth(month);
    function prev(){
        getMyMonth(-- monthSub); 
    }
    function next(){
        getMyMonth(++ monthSub);
    }
</script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自VR设计云课堂[https://www.jianshu.com/u/c7ffdc4b379e]Unity S...
    水月凡阅读 1,062评论 0 0
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,523评论 0 17
  • 国庆期间,因为堂姐结婚,所以我便准备带儿子回娘家,因为买的无座,所以先生在值了晚班后开车回了趟娘家。 在参与堂姐婚...
    飘絮柳阅读 601评论 0 1
  • 冬月初九 大雪 我在哈尔滨过第22个生日 收到了许多朋友零点的祝福 心里莫名的温暖 人生这么长 生活有些无聊 幸运...
    O_o漪離阅读 242评论 1 1
  • 经过了新人特训,来到了二级特训,新人学的都是干货知识,也荣幸的得到了三好学生,优秀学员,很开心,二级特训营今天是第...
    暖心鹤阅读 684评论 0 0