基于jquery实现日历效果
导读:收集整理的这篇文章主要介绍了基于jquery实现日历效果,觉得挺不错的,现在分享给大家,也给大家做个参考。 本文实例为大家分享了jquery实现日历效果的具体代码,供大家参考,具体内容如...
收集整理的这篇文章主要介绍了基于jquery实现日历效果,觉得挺不错的,现在分享给大家,也给大家做个参考。 本文实例为大家分享了jquery实现日历效果的具体代码,供大家参考,具体内容如下
/** * 2021/3/6 * Calendar */ /* get y Year m Month before days */function getBDays( y, m ) { return (new Date(y, m, 1).getDay()); } /* get y Year m Month total days */function getTDays( y, m ) { return (new Date(y, m + 1, -1).getDate() + 1); } /* get y Year m Month last days */function getBMDays( y, m ) { return (new Date(y, m, -1).getDate() + 1); } function Calendar( nowDate ) { // year, month, day this.year = nowDate.getFullYear(); this.month = nowDate.getMonth(); this.day = nowDate.getDate(); // before days this.beforedays = getBDays(this.year, this.month); // current month days this.totalDays = getTDays(this.year, this.month); // last month days this.lastDays = getBMDays(this.year, this.month); // save now date this.nowY = nowDate.getFullYear(); this.nowM = nowDate.getMonth(); } Calendar.PRototyPE.inITCalendar = function() { // get calendar id let calDiv = $("#Calendar").append("table> /table> "); // get calendar table let calTable = $("#Calendar > table"); // add calendar table tr for ( let n = 0; n 8; n++ ) { calTable.append('tr> /tr> '); } // get calendar table tr : header let calHeadTr = $("#Calendar > table > tr:First"); // add calendar table tr th for ( let n = 0; n 3; n++ ) { calHeadTr.append('th> /th> '); } // select index > 0 tr let calBodyTr = $("#Calendar > table > tr:gt(0)"); // add calendar table tr td for ( let n = 0; n 7; n++ ) { calBodyTr.append('td> /td> '); } } Calendar.prototype.insertDate = function( calName ) { // get calendar table tr td : header let calHeadTh = $("#Calendar > table > tr:first > th"); // modify header content $(calHeadTh[0]).htML("a> /a> "); $(calHeadTh[1]).html(`a> ${ this.year} 年 ${ this.month + 1} 月/a> `); $(calHeadTh[2]).html("a> > /a> "); // add style to header $(calHeadTh[1]).attr({ "colspan" : 5, "title" : calName } ); // weekday arrays const calWeekArr = ['日', '一', '二', '三', '四', '五', '六']; // get calendar table tr td : weekdays let calWeekTd = $("#Calendar > table > tr:eq(1) > td"); for ( let n = 0; n 7; n++ ) { $(calWeekTd[n]).html(`a> ${ calWeekArr[n]} /a> `); } // get calendar table tr td : body let calBodyTd = $("#Calendar > table > tr:gt(1) > td"); // insert before days for (let n = this.beforeDays - 1, lastDays = this.lastDays; n > = 0; n--, lastDays--) { $(calBodyTd[n]).html(`a> ${ lastDays} /a> `); $(calBodyTd[n]).attr("class", "other-day"); } // insert current days for (let n = this.beforeDays, i = 1; i = this.totalDays; i++, n++) { $(calBodyTd[n]).html(`a> ${ i} /a> `); if (i == this.day & & (new Date(this.year, this.month, 1).getMonth() == this.nowM) & & (new Date(this.year, this.month, 1).getFullYear() == this.nowY)) { $(calBodyTd[n]).attr("class", "now-day"); } else { $(calBodyTd[n]).removeAttr("class", "now-day"); } } // insert after days for (let n = this.beforeDays + this.totalDays, i = 1; n calBodyTd.length; n++, i++) { $(calBodyTd[n]).html(`a> ${ i} /a> `); $(calBodyTd[n]).attr("class", "other-day"); } } Calendar.prototype.update = function( newDate ) { // year, month, day this.year = newDate.getFullYear(); this.month = newDate.getMonth(); this.day = newDate.getDate(); // before days this.beforeDays = getBDays(this.year, this.month); // current month days this.totalDays = getTDays(this.year, this.month); // last month days this.lastDays = getBMDays(this.year, this.month); } function initDate() { // create Date object let now = new Date(); let cal = new Calendar( now ); // init and insert cal.initCalendar(); cal.insertDate( 'MyDate' ); // add click event to th:first $("#Calendar > table > tr:first > th:first").click(function(){ now.setMonth( now.getMonth() - 1 ); cal.update( now ); cal.insertDate( 'MyDate' ); } ); // add click event to th:last $("#Calendar > table > tr:first > th:last").click(function(){ now.setMonth( now.getMonth() + 1 ); cal.update( now ); cal.insertDate( 'MyDate' ); } ); } initDate();
html
!DOCTYPE html> html> head> meta charset="utf-8" /> title> Document/title> link href="css/dateCal.css" rel="stylesheet" media="screen"> /head> body> div id="Calendar"> /div> script src="js/jquery.js"> /script> script src="js/dateCal.js"> /script> /body> /html>
CSS:
#Calendar { width: 200px; padding-bottom: 5px; box-shadow: 0 1px 3px #ccc; border: 1px solid #EDEDED; } #Calendar table { width: inherit; text-align: center; user-select: none; font-family: "Comic Sans MS"; border-collapse: collapse; border-spacing: 0px; } #Calendar table tr th { background: #f8f8f8; font-Size: 12px; } #Calendar table tr:nth-child(2) { background: #f8f8f8; } #Calendar table tr td { font-size: 10px; } #Calendar table tr td.now-day { color: red; } #Calendar table tr td.other-day { color: lightgray; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
@H_360_22@您可能感兴趣的文章:- 基于jquery实现日历签到功能
- jQuery EasyUI API 中文文档 - Calendar日历使用
- 为开发者准备的10款最好的jQuery日历插件
- jQuery简单实现日历的方法
- jQuery写的日历(包括日历的样式及功能)
- jQuery 联动日历实现代码
- .net mvc页面UI之Jquery博客日历控件实现代码
- php+mysql+jquery实现日历签到功能
- JQuery日历插件My97DatePicker日期范围限制
- Jquery日历插件制作简单日历
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 基于jquery实现日历效果
本文地址: https://pptw.com/jishu/594858.html