JavaScript快速实现日历效果
导读:收集整理的这篇文章主要介绍了JavaScript快速实现日历效果,觉得挺不错的,现在分享给大家,也给大家做个参考。 本文实例为大家分享了JavaScript快速实现日历效果的具体代码,供...
收集整理的这篇文章主要介绍了JavaScript快速实现日历效果,觉得挺不错的,现在分享给大家,也给大家做个参考。 本文实例为大家分享了JavaScript快速实现日历效果的具体代码,供大家参考,具体内容如下
效果图
代码
!DOCTYPE htML> html lang="en"> head> meta charset="UTF-8"> meta http-equiv="X-UA-Compatible" content="IE=Edge"> meta name="viewport" content="width=device-width, inITial-scale=1.0"> title> Document/title> style> * { margin: 0; padding: 0; } #calendar { background-color: #9900ff; color: #fff; border-radius: 5px; margin: 100px auto; } #title { font-Size: 1.4em; padding: 4px 0.55em; } #days th { font-weight: bold; text-align: center; padding: 4px 0.55em; } #calendar td { text-align: center; padding: 4px 20px; } #today { color: #f00; font-weight: bold; } .poin { cursor: pointer; cursor: hand; } /style> script> window.onload=function(){ VAR form = document.getElementById('calendar'); // 通过日历对象去调用自身的init方法 calendar.init(form); } var calendar = { year: null, month: null, //日的数组 dayTable: null, //初始化函数 init(form) { // 1获取日数组 this.dayTable=form.getelementsbytagname('td'); //2创建日历,传入当前时间 this.createCalendar(form,new Date()); var nextMon=form.getElementsByTagName('th')[2]; var PReMon=form.getElementsByTagName('th')[0]; preMon.onclick=function(){ calendar.clearCalendar(form) var predate=new Date(calendar.year,calendar.month-1,1); calendar.createCalendar(form,preDate) } nextMon.onclick=function(){ calendar.clearCalendar(form) var nextDate=new Date(calendar.year,calendar.month+1,1); calendar.createCalendar(form,nextDate) } } , //清除日历数据 clearCalendar(form){ var tds=form.getElementsByTagName('td'); for (var i = 0; i tds.length; i++) { tds[i].innerHTML='& nbsp'; // 清除今天的样式 tds[i].id=''; } } , // 3生成日历 // From table表格 date要创建的日期 createCalendar(form,date){ //获取此时的年份 this.year=date.getFullYear(); //获取此时的月份 this.month=date.getMonth(); //年份月份写入日历 form.getElementsByTagName('th')[1].innerHTML = this.year+"年"+(this.month+1)+"月"; //获取本月的天数 var dataNum=this.getDateLen(this.year,this.month); var fristDay = this.getFristDay(calendar.year,calendar.month); // 循环将每一天的天数写入到日历中 // 让i表示日期。 for (var i = 1; i = dataNum; i++) { this.dayTable[fristDay+i-1].innerHTML=i; var nowDate =new Date(); if(i ==nowDate.getDate() & & calendar.month ==nowDate.getMonth()& & calendar.year == nowDate.getFullYear()){ // 将当期元素的id设置为today calendar.dayTable[i+fristDay-1].id = "today"; } } } , // 获取本月份的天数 getDateLen(year,month){ //获取下个月的第一天 var nextMonth=new Date(year,month+1,1); // 设置下月第一天的小时-1,也就是上个月最后一天的小时数,随便减去一个值不要超过24小时 nextMonth.setHours(nextMonth.getHours()-1); //获取此时下个月的日期,就是上个月最后一天. return nextMonth.getDate(); } , // 获取本月第一天为星期几。 getFristDay:function(year,month){ var fristDay=new Date(year,month,1); return fristDay.getDay(); } } /script> /head> body> table id="calendar"> tr> !-- 向左箭头 --> th class="poin"> & lt; & lt; /th> !-- 年月 --> th id="title" colspan="5"> /th> !-- 向右箭头 --> th class="poin"> & gt; & gt; /th> /tr> tr id="days"> th> 日/th> th> 一/th> th> 二/th> th> 三/th> th> 四/th> th> 五/th> th> 六/th> /tr> tr> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> /tr> tr> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> /tr> tr> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> /tr> tr> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> /tr> tr> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> /tr> tr> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> td> & nbsp; /td> /tr> /table> /body> /html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:- js css+html实现简单的日历
- 轻量级的原生js日历插件calendar.js使用指南
- JS学习之一个简易的日历控件
- JS日历 推荐
- Vue.js创建Calendar日历效果
- 纯js简单日历实现代码
- js编写当天简单日历效果【实现代码】
- js日历控件(可精确到分钟)
- php+javascript的日历控件
- 简约JS日历控件 实例代码
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: JavaScript快速实现日历效果
本文地址: https://pptw.com/jishu/594745.html