Example of JS imitating the calendar effect of Windows 10 system
The Dancing Soul version of the js calendar is completely implemented in js, so it is independent of language. It can be used in jsp, asp.net, php asp. Whether you are developing software or a website, it is an indispensable practical code. .
This calendar mainly implements obtaining the current time, hours, minutes, seconds, year, month, day, and week, dynamically generates a selection of year and month, and then displays the corresponding year and month according to the year and month you selected. the date of this month.
Click the previous month and next month buttons to display the corresponding year and month in the drop-down list.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #calendar { position: absolute; padding: 5px; border: 1px solid #000000; background: #8f3349; display: none; } #todayTime { padding: 5px 0; font-size: 40px; color: white; } #todayDate { padding: 5px 0; font-size: 24px; color: #ffcf88; } #tools { padding: 5px 0; height: 30px; color: white; } #tools .l { float: left; } #tools .r { float: right; } table { width: 100%; color: white; } table th { color: #a2cbf3; } table td { text-align: center; cursor: default; } table td.today { background: #cc2951; color: white; } </style> <script> window.onload = function() { var text1 = document.getElementById('text1'); text1.onfocus = function() { calendar(); } // calendar(); function calendar() { var calendarElement = document.getElementById('calendar'); var todayTimeElement = document.getElementById('todayTime'); var todayDateElement = document.getElementById('todayDate'); var selectYearElement = document.getElementById('selectYear'); var selectMonthElement = document.getElementById('selectMonth'); var showTableElement = document.getElementById('showTable'); var prevMonthElement = document.getElementById('prevMonth'); var nextMonthElement = document.getElementById('nextMonth'); calendarElement.style.display = 'block'; /* * 获取今天的时间 * */ var today = new Date(); //设置日历显示的年月 var showYear = today.getFullYear(); var showMonth = today.getMonth(); //持续更新当前时间 updateTime(); //显示当前的年月日星期 todayDateElement.innerHTML = getDate(today); //动态生成选择年的select for (var i=1970; i<2020; i++) { var option = document.createElement('option'); option.value = i; option.innerHTML = i; if ( i == showYear ) { option.selected = true; } selectYearElement.appendChild(option); } //动态生成选择月的select for (var i=1; i<13; i++) { var option = document.createElement('option'); option.value = i - 1; option.innerHTML = i; if ( i == showMonth + 1 ) { option.selected = true; } selectMonthElement.appendChild(option); } //初始化显示table showTable(); //选择年 selectYearElement.onchange = function() { showYear = this.value; showTable(); showOption(); } //选择月 selectMonthElement.onchange = function() { showMonth = Number(this.value); showTable(); showOption(); } //上一个月 prevMonthElement.onclick = function() { showMonth--; showTable(); showOption(); } //下一个月 nextMonthElement.onclick = function() { showMonth++; showTable(); showOption(); } /* * 实时更新当前时间 * */ function updateTime() { var timer = null; //每个500毫秒获取当前的时间,并把当前的时间格式化显示到指定位置 var today = new Date(); todayTimeElement.innerHTML = getTime(today); timer = setInterval(function() { var today = new Date(); todayTimeElement.innerHTML = getTime(today); }, 500); } function showTable() { showTableElement.tBodies[0].innerHTML = ''; //根据当前需要显示的年和月来创建日历 //创建一个要显示的年月的下一个的日期对象 var date1 = new Date(showYear, showMonth+1, 1, 0, 0, 0); //对下一个月的1号0时0分0秒的时间 - 1得到要显示的年月的最后一天的时间 var date2 = new Date(date1.getTime() - 1); //得到要显示的年月的总天数 var showMonthDays = date2.getDate(); //获取要显示的年月的1日的星期,从0开始的星期 date2.setDate(1); //showMonthWeek表示这个月的1日的星期,也可以作为表格中前面空白的单元格的个数 var showMonthWeek = date2.getDay(); var cells = 7; var rows = Math.ceil( (showMonthDays + showMonthWeek) / cells ); //通过上面计算出来的行和列生成表格 //没生成一行就生成7列 //行的循环 for ( var i=0; i<rows; i++ ) { var tr = document.createElement('tr'); //列的循环 for ( var j=0; j<cells; j++ ) { var td = document.createElement('td'); var v = i*cells + j - ( showMonthWeek - 1 ); //根据这个月的日期控制显示的数字 //td.innerHTML = v; if ( v > 0 && v <= showMonthDays ) { //高亮显示今天的日期 if ( today.getFullYear() == showYear && today.getMonth() == showMonth && today.getDate() == v ) { td.className = 'today'; } td.innerHTML = v; } else { td.innerHTML = ''; } td.ondblclick = function() { calendarElement.style.display = 'none'; text1.value = showYear + '年' + (showMonth+1) + '月' + this.innerHTML + '日'; } tr.appendChild(td); } showTableElement.tBodies[0].appendChild(tr); } } function showOption() { var date = new Date(showYear, showMonth); var sy = date.getFullYear(); var sm = date.getMonth(); console.log(showYear, showMonth) var options = selectYearElement.getElementsByTagName('option'); for (var i=0; i<options.length; i++) { if ( options[i].value == sy ) { options[i].selected = true; } } var options = selectMonthElement.getElementsByTagName('option'); for (var i=0; i<options.length; i++) { if ( options[i].value == sm ) { options[i].selected = true; } } } } /* * 获取指定时间的时分秒 * */ function getTime(d) { return [ addZero(d.getHours()), addZero(d.getMinutes()), addZero(d.getSeconds()) ].join(':'); } /* * 获取指定时间的年月日和星期 * */ function getDate(d) { return d.getFullYear() + '年'+ addZero(d.getMonth() + 1) +'月'+ addZero(d.getDate()) +'日 星期' + getWeek(d.getDay()); } /* * 给数字加前导0 * */ function addZero(v) { if ( v < 10 ) { return '0' + v; } else { return '' + v; } } /* * 把数字星期转换成汉字星期 * */ function getWeek(n) { return '日一二三四五六'.split('')[n]; } } </script> </head> <body> <input type="text" id="text1"> <p id="calendar"> <p id="todayTime"></p> <p id="todayDate"></p> <p id="tools"> <p class="l"> <select id="selectYear"></select> 年 <select id="selectMonth"></select> 月 </p> <p class="r"> <span id="prevMonth">∧</span> <span id="nextMonth">∨</span> </p> </p> <table id="showTable"> <thead> <tr> <th>日</th> <th>一</th> <th>二</th> <th>三</th> <th>四</th> <th>五</th> <th>六</th> </tr> </thead> <tbody></tbody> </table> </p> </body> </html>
Effect:
The above is the detailed content of Example of JS imitating the calendar effect of Windows 10 system. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to implement dual WeChat login on Huawei mobile phones? With the rise of social media, WeChat has become one of the indispensable communication tools in people's daily lives. However, many people may encounter a problem: logging into multiple WeChat accounts at the same time on the same mobile phone. For Huawei mobile phone users, it is not difficult to achieve dual WeChat login. This article will introduce how to achieve dual WeChat login on Huawei mobile phones. First of all, the EMUI system that comes with Huawei mobile phones provides a very convenient function - dual application opening. Through the application dual opening function, users can simultaneously

How to implement the WeChat clone function on Huawei mobile phones With the popularity of social software and people's increasing emphasis on privacy and security, the WeChat clone function has gradually become the focus of people's attention. The WeChat clone function can help users log in to multiple WeChat accounts on the same mobile phone at the same time, making it easier to manage and use. It is not difficult to implement the WeChat clone function on Huawei mobile phones. You only need to follow the following steps. Step 1: Make sure that the mobile phone system version and WeChat version meet the requirements. First, make sure that your Huawei mobile phone system version has been updated to the latest version, as well as the WeChat App.

The programming language PHP is a powerful tool for web development, capable of supporting a variety of different programming logics and algorithms. Among them, implementing the Fibonacci sequence is a common and classic programming problem. In this article, we will introduce how to use the PHP programming language to implement the Fibonacci sequence, and attach specific code examples. The Fibonacci sequence is a mathematical sequence defined as follows: the first and second elements of the sequence are 1, and starting from the third element, the value of each element is equal to the sum of the previous two elements. The first few elements of the sequence

In today's software development field, Golang (Go language), as an efficient, concise and highly concurrency programming language, is increasingly favored by developers. Its rich standard library and efficient concurrency features make it a high-profile choice in the field of game development. This article will explore how to use Golang for game development and demonstrate its powerful possibilities through specific code examples. 1. Golang’s advantages in game development. As a statically typed language, Golang is used in building large-scale game systems.

PHP Game Requirements Implementation Guide With the popularity and development of the Internet, the web game market is becoming more and more popular. Many developers hope to use the PHP language to develop their own web games, and implementing game requirements is a key step. This article will introduce how to use PHP language to implement common game requirements and provide specific code examples. 1. Create game characters In web games, game characters are a very important element. We need to define the attributes of the game character, such as name, level, experience value, etc., and provide methods to operate these

We need to use the search box when using the win10 system, but many users are asking how to reduce the win10 search box? Users can directly find the display search icon under the search extension icon to perform operations. Let this site carefully introduce to users how to make the win10 search box smaller. How to make the search box smaller in win10 Method 1. When you turn on the computer, you can see the search box in the lower left corner of the computer, as shown in the picture. 2. Then you can right-click on the search box, a menu option will appear next to it, and click the [Search] extension icon with the mouse. 3. At this time, you can see that in the sub-option, click the [Show search icon] option.

Implementing exact division operations in Golang is a common need, especially in scenarios involving financial calculations or other scenarios that require high-precision calculations. Golang's built-in division operator "/" is calculated for floating point numbers, and sometimes there is a problem of precision loss. In order to solve this problem, we can use third-party libraries or custom functions to implement exact division operations. A common approach is to use the Rat type from the math/big package, which provides a representation of fractions and can be used to implement exact division operations.

Title: Detailed explanation of data export function using Golang. With the improvement of informatization, many enterprises and organizations need to export data stored in databases into different formats for data analysis, report generation and other purposes. This article will introduce how to use the Golang programming language to implement the data export function, including detailed steps to connect to the database, query data, and export data to files, and provide specific code examples. To connect to the database first, we need to use the database driver provided in Golang, such as da
