原生JavaScript实现日历功能代码实例(无引用Jq)

下面是“原生JavaScript实现日历功能代码实例(无引用Jq)”的完整攻略:

1. 前言

日历是常用的组件之一,本文将通过原生 JavaScript 实现一个简单的日历,并且不依赖于 jQuery 等第三方库。主要实现以下功能:

  • 显示当前时间,包括年、月、日。
  • 可以切换月份,并显示当前月份的日期信息。

2. HTML 结构

HTML 结构十分简单,只需一个 div 即可,代码如下:

<div id="calendar"></div>

3. JavaScript 代码实现

3.1 显示当前时间

首先,我们要显示当前时间,包括年、月、日。这可以通过 Date 对象来实现。代码如下:

function showTime() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth() + 1;
  var day = now.getDate();
  var dateString = year + '-' + month + '-' + day;
  // 显示时间
  var timeElement = document.createElement('p');
  timeElement.textContent = dateString;
  calendarElement.appendChild(timeElement);
}

3.2 显示当前月份的日期信息

接下来,我们要根据当前日期信息,显示该月份的日期信息。这可以通过 Date 对象和 DOM 操作来实现。代码如下:

function showCalendar() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth() + 1;
  var day = now.getDate();
  // 计算本月第一天是星期几
  var firstDay = new Date(year, month - 1, 1).getDay();
  // 计算本月共有多少天
  var totalDays = new Date(year, month, 0).getDate();
  // 创建表格
  var tableElement = document.createElement('table');
  var trElement = document.createElement('tr');
  tableElement.appendChild(trElement);
  for (var i = 0; i < 7; i++) {
    var thElement = document.createElement('th');
    thElement.textContent = ['日', '一', '二', '三', '四', '五', '六'][i];
    trElement.appendChild(thElement);
  }
  for (var i = 0; i < 6; i++) {
    var trElement = document.createElement('tr');
    for (var j = 0; j < 7; j++) {
      var tdElement = document.createElement('td');
      var day = i * 7 + j - firstDay + 1;
      if (day > 0 && day <= totalDays) {
        tdElement.textContent = day;
      }
      trElement.appendChild(tdElement);
    }
    tableElement.appendChild(trElement);
  }
  // 显示表格
  var tableElement = document.createElement('table');
  var calendarElement = document.getElementById('calendar');
  calendarElement.appendChild(tableElement);
}

3.3 完整代码

最后,我们把 showTimeshowCalendar 函数整合到一起,并调用它们。完整代码如下:

function showTime() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth() + 1;
  var day = now.getDate();
  var dateString = year + '-' + month + '-' + day;
  // 显示时间
  var timeElement = document.createElement('p');
  timeElement.textContent = dateString;
  calendarElement.appendChild(timeElement);
}

function showCalendar() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth() + 1;
  var day = now.getDate();
  // 计算本月第一天是星期几
  var firstDay = new Date(year, month - 1, 1).getDay();
  // 计算本月共有多少天
  var totalDays = new Date(year, month, 0).getDate();
  // 创建表格
  var tableElement = document.createElement('table');
  var trElement = document.createElement('tr');
  tableElement.appendChild(trElement);
  for (var i = 0; i < 7; i++) {
    var thElement = document.createElement('th');
    thElement.textContent = ['日', '一', '二', '三', '四', '五', '六'][i];
    trElement.appendChild(thElement);
  }
  for (var i = 0; i < 6; i++) {
    var trElement = document.createElement('tr');
    for (var j = 0; j < 7; j++) {
      var tdElement = document.createElement('td');
      var day = i * 7 + j - firstDay + 1;
      if (day > 0 && day <= totalDays) {
        tdElement.textContent = day;
      }
      trElement.appendChild(tdElement);
    }
    tableElement.appendChild(trElement);
  }
  // 显示表格
  var calendarElement = document.getElementById('calendar');
  calendarElement.appendChild(tableElement);
}

// 调用函数
showTime();
showCalendar();

4. 示例说明

4.1 示例一

在上面的代码中,我们显示了当前时间和当前月份的日期信息。但是,我们可以根据需要,修改代码,只显示其中的一个或几个信息。例如,我们只显示当前年份和月份的日期信息,代码如下:

function showCalendar() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth() + 1;
  // 计算本月第一天是星期几
  var firstDay = new Date(year, month - 1, 1).getDay();
  // 计算本月共有多少天
  var totalDays = new Date(year, month, 0).getDate();
  // 创建表格
  var tableElement = document.createElement('table');
  var trElement = document.createElement('tr');
  tableElement.appendChild(trElement);
  for (var i = 0; i < 7; i++) {
    var thElement = document.createElement('th');
    thElement.textContent = ['日', '一', '二', '三', '四', '五', '六'][i];
    trElement.appendChild(thElement);
  }
  for (var i = 0; i < 6; i++) {
    var trElement = document.createElement('tr');
    for (var j = 0; j < 7; j++) {
      var tdElement = document.createElement('td');
      var day = i * 7 + j - firstDay + 1;
      if (day > 0 && day <= totalDays) {
        tdElement.textContent = day;
      }
      trElement.appendChild(tdElement);
    }
    tableElement.appendChild(trElement);
  }
  // 显示表格
  var calendarElement = document.getElementById('calendar');
  calendarElement.appendChild(tableElement);
}

4.2 示例二

在上面的代码中,我们创建了表格,并把日期信息放到了表格中。但是,我们也可以根据需要,修改代码来改变表格的样式。例如,我们把表格样式改为黑色背景和白色文字,代码如下:

function showCalendar() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth() + 1;
  // 计算本月第一天是星期几
  var firstDay = new Date(year, month - 1, 1).getDay();
  // 计算本月共有多少天
  var totalDays = new Date(year, month, 0).getDate();
  // 创建表格
  var tableElement = document.createElement('table');
  tableElement.style.backgroundColor = 'black';
  tableElement.style.color = 'white';
  var trElement = document.createElement('tr');
  tableElement.appendChild(trElement);
  for (var i = 0; i < 7; i++) {
    var thElement = document.createElement('th');
    thElement.textContent = ['日', '一', '二', '三', '四', '五', '六'][i];
    trElement.appendChild(thElement);
  }
  for (var i = 0; i < 6; i++) {
    var trElement = document.createElement('tr');
    for (var j = 0; j < 7; j++) {
      var tdElement = document.createElement('td');
      var day = i * 7 + j - firstDay + 1;
      if (day > 0 && day <= totalDays) {
        tdElement.textContent = day;
      }
      trElement.appendChild(tdElement);
    }
    tableElement.appendChild(trElement);
  }
  // 显示表格
  var calendarElement = document.getElementById('calendar');
  calendarElement.appendChild(tableElement);
}

以上就是实现一个简单的日历的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生JavaScript实现日历功能代码实例(无引用Jq) - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 基于CSS3实现的黑色个性导航菜单效果

    要实现“基于CSS3实现的黑色个性导航菜单效果”,我们需要遵循以下步骤: 步骤一:结构HTML 首先,我们需要在HTML中定义菜单的结构。代码如下: <nav class="menu"> <ul> <li><a href="#">Home</a></li…

    css 2023年6月10日
    00
  • 第六章之辅组类与响应式工具

    第六章之辅助类与响应式工具 一、辅助类 辅助类可以简单的理解为一组实用的CSS类,它们可以帮助快速实现常见的布局和样式需求,同时可以使代码更具可读性。Bootstrap提供了一系列的辅助类,这些辅助类可以在HTML标签中任意使用,可以简化页面的HTML结构,也可以提高CSS代码的复用性。 辅助类一般以 . 类名形式出现,例如 .d-none 表示隐藏元素、.…

    css 2023年6月10日
    00
  • 详解HTML5中的picture元素响应式处理图片

    HTML5中的picture元素是一种用于响应式处理图片的标记语言,它能够根据设备屏幕大小及分辨率自动调整网页中的图片尺寸和质量,使得网站在不同设备上展示效果更加出色。下面将详细讲解如何使用picture元素实现响应式图片的处理。 1. 了解picture元素 picture元素提供了一种灵活的图片呈现方式,它的格式如下所示: <picture>…

    css 2023年6月10日
    00
  • jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码

    要实现圆角无刷新表单带输入验证功能,需要使用jQuery、HTML5和CSS3来完成。下面就是实现步骤: 1. 定义页面结构 <form id="myForm" action="" method="post"> <div class="form-group"&g…

    css 2023年6月10日
    00
  • 倩女幽魂灵犀迷宫活动内容详情_倩女幽魂灵犀迷宫活动具体流程

    倩女幽魂灵犀迷宫活动内容详情 活动介绍 灵犀迷宫是倩女幽魂游戏中的一个限时活动,需要玩家组队完成迷宫的挑战,获取丰厚的奖励和宝藏。灵犀迷宫每隔一定时间就会开启,每次开启时间都为30分钟,需要玩家在规定时间内完成挑战。 参与方式 玩家需要组成三人队伍才能进入迷宫,其中要求至少有一个队员是武当、少林、华山三个门派中的一个,另外两个队员可以是多种门派的组合。 进入…

    css 2023年6月10日
    00
  • CSS的calc函数用法小结

    CSS的calc函数用法小结 在CSS中,calc()函数是一种非常有用的工具,它允许开发人员在CSS中执行简单的算术运算。以下是一些常见的calc()函数用法: 基本用法 calc()函数的基本语法如下: width: calc(expression); 其中,expression是一个包含加、减、乘、除和括号的算术表达式。例如: width: calc(…

    css 2023年5月18日
    00
  • 又一实用的常用CSS缩写语法收集

    当我们书写 CSS 样式时,经常需要写很长的属性名和属性值,这不仅让代码在阅读上不太美观,而且还比较繁琐。为了解决这个问题,CSS 缩写语法应运而生。本篇攻略将介绍 CSS 缩写语法的常用属性和使用方法,希望对大家的日常开发有所帮助。 CSS 缩写语法的常用属性 margin 缩写语法 css margin: 20px 10px 30px 40px; /* …

    css 2023年6月9日
    00
  • JS轮播图的实现方法

    实现 JavaScript 轮播图的方法有很多,下面将介绍其中一种常见的轮播图实现方法。 利用 HTML、CSS、JavaScript 实现轮播图 HTML 结构 轮播图的 HTML 结构需要两个主要的部分: 包含轮播图片的容器,比如 div,在这个容器内部有多个用于展示图片的 img 元素,这些 img 元素可以通过 CSS 的方式来控制排列。 突出显示当…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部