介绍
这篇文章给大家分享的是有关基于JavaScript如何实现每日签到打卡轨迹功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体内容如下
1。核心文件,calendar.js
var calUtil =, { ,//当前日历显示的年份 2018年,showYear: ,//当前日历显示的月份 ,showMonth: 1、 ,//当前日历显示的天数 ,showDays: 1、 ,eventName:“load" ,//初始化日历 ,初始化:函数(signList) { calUtil.setMonthAndDay才能(); calUtil.draw才能(signList); ,, }, ,画:函数(signList) {//绑才能定日历 var 才能;str =, calUtil.drawCal (calUtil.showYear, calUtil.showMonth signList); 美元才能(“# calendar") . html (str);//绑才能定日历表头 var 才能calendarName=calUtil.showYear +“年“+ calUtil.showMonth +“月”; 美元才能(“.calendar_month_span") . html (calendarName);, }, ,//获取当前选择的年月 ,setMonthAndDay:函数(){ 开关(calUtil.eventName)才能 {才能 ,,case “load": ,,,var current =, new 日期(); ,,,calUtil.showYear=current.getFullYear (); ,,,calUtil.showMonth=current.getMonth (), +, 1; ,,,休息; ,,case “prev": ,,,var nowMonth=$ (“.calendar_month_span") . html () .split(“年“)[1].split(“月“)[0]; ,,,calUtil.showMonth=方法(nowMonth) 1; ,,,如果(calUtil.showMonth==0) ,,,{ ,,,,,calUtil.showMonth=12; ,,,,,calUtil.showYear -=1; ,,,} ,,,休息; ,,case “next": ,,,var nowMonth=$ (“.calendar_month_span") . html () .split(“年“)[1].split(“月“)[0]; ,,,calUtil.showMonth=方法(nowMonth) + 1; ,,,如果(calUtil.showMonth==13) ,,,{ ,,,,,calUtil.showMonth=1; ,,,,,calUtil.showYear +=1; ,,,} ,,,休息; ,,} }, ,getDaysInmonth :函数(iMonth, iYear) { var 才能;dPrevDate =, new 日期(iYear, iMonth,, 0); return 才能dPrevDate.getDate (); }, ,bulidCal :函数(iYear, iMonth), { var 才能;aMonth =, new 数组(); aMonth才能[0],=,new 数组(7); aMonth才能[1],=,new 数组(7); aMonth才能[2],=,new 数组(7); aMonth才能[3],=,new 数组(7); aMonth才能[4],=,new 数组(7); aMonth才能[5],=,new 数组(7); aMonth才能[6],=,new 数组(7); var 才能;dCalDate =, new 日期(iYear, iMonth 安康,1,1); var 才能;iDayOfFirst =, dCalDate.getDay (); var 才能;iDaysInMonth =, calUtil.getDaysInmonth (iYear iMonth也); var 才能;iVarDate =, 1; ,,var d w; aMonth才能[0][0],=,“日”; aMonth才能[0][1],=,“一”; aMonth才能[0][2],=,“二”; aMonth才能[0][3],=,“三”; aMonth才能[0][4],=,“四”; aMonth才能[0][5],=,“五”; aMonth才能[0][6],=,“六”; for 才能;(d =, iDayOfFirst;, d & lt;, 7,, d + +), { aMonth才能[1][d],=, iVarDate; iVarDate才能+ +; ,,} for 才能;(w =, 2,, w & lt;, 7;, w + +), { for 才能;(d =, 0;, d & lt;, 7,, d + +), { ,,if (iVarDate & lt;=, iDaysInMonth), { ,,aMonth [w] [d],=, iVarDate; ,,iVarDate + +; ,,} ,,} ,,} return 才能;aMonth; }, ,ifHasSigned :函数(signList天){ var 才能;signed =,假; 美元才能each (signList函数(指数项){ 如果才能(==item.signDay 天),{ ,,signed =,真的; ,,return 假; ,,} ,,}); return 才能;signed ; }, ,drawCal :函数(iYear, iMonth , signList), { var 才能;myMonth =, calUtil.bulidCal (iMonth iYear也); var 才能;htmls =, new 数组(); htmls.push才能(“& lt; div 类=& # 39;sign_main& # 39;, id=& # 39; sign_layer& # 39;在“); htmls.push才能(“& lt; div 类=& # 39;sign_succ_calendar_title& # 39;在“); null null null null null null null null null null null null null null null null null null null null null null null null null null null基于JavaScript如何实现每日签到打卡轨迹功能