JavaScript怎么实现自定义日历效果

技术JavaScript怎么实现自定义日历效果本篇内容主要讲解“JavaScript怎么实现自定义日历效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎

本文主要讲解“JavaScript如何实现自定义日历效果”,感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“JavaScript如何实现自定义日历效果”!

实现思路:在每个月的第一天得到一周中的某一天,然后将前几天填为空白。得到每个月的天数后,循环填写,判断并给当前时间添加一个单独的样式,通过点击前一个月和下一个月来改变月份。

获取当月的第一天:返回值为0(星期日)到6(星期六)之间的整数。

var date=NewDate();

vary=date . getfullyear();

varm=date . getmonth();

新日期(y,m,1)。getDay();获取当月的天数。

var date=NewDate();

vary=date . getfullyear();

varm=date . getmonth();

newDate(y,m 1,-1)。getDate()1;最后,点击前一个月和后一个月加减一,执行封装的日历功能。

全部代码:

!DOCTYPEhtml

htmllang='en '

metachartset=' UTF-8 '

元名称=“视口”内容=“宽度=设备宽度,初始比例=1.0”

标题文档/标题

风格

*{

margin:0

划水:0;

}

正文{

背景技术: # 2c 3e 50;

}。日历{

宽度width:400px

margin:50pxauto

}。日历提示{

font-size :16 px;

文本对齐:居中;

color: # fff

}

   .prev {
            float: left;
            cursor: pointer;
        }
        .next {
            float: right;
            cursor: pointer;
        }
        .calendar-month {
            text-align: center;
            margin: 10px 0;
            color: #fff;
        }
        ul {
            list-style: none;
            display: flex;
        }
        li {
            width: 57px;
            text-align: center;
            height: 55px;
            line-height: 55px;
            font-size: 16px;
            color: #fff;
        }
        .calendar-day {
            display: flex;
        }
        .calendar-day span {
            flex: 1;
            color: #fff;
            text-align: center;
            height: 40px;
            line-height: 40px;
        }
        .calendar-data {
            display: flex;
            flex-wrap: wrap;
        }
        li {
            width: 57px;
            cursor: pointer;
        }
        li:hover {
            background: #2d3436;
        }
        .calendar-data .on {
            color: #d63031;
        }
    </style>
</head>
<body>
    <div class="calendar">
        <div class="calendar-tip">
            <span class="prev">上一月</span>
            <em id="year">2022年</em>
            <span class="next">下一月</span>
        </div>
        <div class="calendar-month">五月</div>
        <div class="calendar-day">
            <span>日</span>
            <span>一</span>
            <span>二</span>
            <span>三</span>
            <span>四</span>
            <span>五</span>
            <span>六</span>
        </div>
        <ul class="calendar-data">
            <li>1</li>
            <li>1</li>
            <li>1</li>
            <li>1</li>
            <li>1</li>
            <li>1</li>
            <li>1</li>
        </ul>
    </div>
    <script>
        var date = new Date();
        var year = document.querySelector("#year");
        var month = document.querySelector(".calendar-month");
        var calendarData = document.querySelector(".calendar-data");
        var prev = document.querySelector(".prev");
        var next = document.querySelector(".next");
        var monthArr = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
        var y,m,day,d,html,today;
        calendar();
        function calendar() {
            y = date.getFullYear();
            year.innerHTML = y + "年";
            m = date.getMonth();
            month.innerHTML = monthArr[m];
            day = new Date(y, m, 1).getDay(); //获取每个月第一天是周几
            d = new Date(y, m + 1, -1).getDate() + 1; //获取多少天
            html = "";
            //把每个月第一天之前的时间填充为空
            for (var i = 0; i < day; i++) {
                html += "<li> </li>";
            }
            for (var j = 1; j <= d; j++) {
                if (y==new Date().getFullYear() && m==new Date().getMonth() && j== date.getDate()) {
                    html += "<li class='on'>" + j + "</li>";
                } else {
                    html += "<li>" + j + "</li>";
                }
            }
            calendarData.innerHTML = html;
        }
        prev.onclick = function () {
            date.setMonth(date.getMonth() - 1);
            calendar();
        }
        next.onclick = function () {
            date.setMonth(date.getMonth() + 1);
            calendar();
        }
    </script>
</body>
</html>

效果:

JavaScript怎么实现自定义日历效果

到此,相信大家对“JavaScript怎么实现自定义日历效果”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/76879.html

(0)

相关推荐

  • redis中的五种基本类型(redis的几种类型分别适用什么场景)

    技术redis层级结构是怎样的本篇内容主要讲解“redis层级结构是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis层级结构是怎样的”吧!redis中保存数据时

    攻略 2021年12月23日
  • python循环语句(python循环语句的运用)

    技术Python循环语句怎么用小编给大家分享一下Python循环语句怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是循环呢?简单理解

    攻略 2021年12月19日
  • zookeeper集群怎么发现(zookeeper怎么查集群)

    技术怎样分析ZooKeeper 集群这篇文章将为大家详细讲解有关怎样分析ZooKeeper 集群,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、为什么需要集群1.1 马

    攻略 2021年12月24日
  • 如何浅析C#打印和C#打印预览的实现

    技术如何浅析C#打印和C#打印预览的实现如何浅析C#打印和C#打印预览的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们谈到C#打印和

    攻略 2021年11月24日
  • 用比喻的修辞手法写一句话,用比喻和排比的手法写一句话

    技术用比喻的修辞手法写一句话,用比喻和排比的手法写一句话1、比喻:天边的一弯明月像条小船。 2、排比:不忘初心用比喻的修辞手法写一句话,牢记来时的根;不忘初心,走好现在的路;不忘初心,坚定未来的梦。 1、比喻:喻是一种

    生活 2021年10月22日
  • 公转私用途最好写什么,换外汇用途都可以写哪些

    技术公转私用途最好写什么,换外汇用途都可以写哪些购汇资金用途有自费出境学习公转私用途最好写什么、因私旅游、公务及商务出国、金融和保险服务、专有权利使用费和特许费、咨询服务、职工报酬和赡家款、运输、货物贸易、投资收益、资本

    生活 2021年10月27日