js原生日历的实例(推荐)


Posted in Javascript onOctober 31, 2017

突然发现日期对象可以进行 加减 , 利用这个特性写了一个可以说是对只要会JavaScript  的就可以写的日历;没有各种算法,只有一些逻辑相信只要懂javascript就差不多看俩眼就会的日历。

js原生日历的实例(推荐)

<!DOCTYPE html> 
<html> 
 <head> 
  <meta charset="UTF-8"> 
  <title></title> 
  <style type="text/css"> 
   *{ 
    margin: 0px; 
    padding: 0px; 
   } 
   #data{ 
    width: 280px; 
    border: 1px solid #000000; 
    margin: 20px auto; 
   } 
   #data > p{ 
    display: flex; 
   } 
   #data > h5{ 
    text-align: center; 
   } 
   #data > p > span{ 
    padding: 0 10px; 
   } 
   #prev,#next{ 
    cursor: pointer; 
   } 
   #nian{ 
    flex: 1; 
    text-align: center; 
   } 
   #title{ 
    overflow: hidden; 
    list-style: none; 
    background: #ccc; 
   } 
   #title > li{ 
    float: left; 
    width: 40px; 
    height: 26px; 
    line-height: 26px; 
    text-align: center; 
   } 
   #date{ 
    overflow: hidden; 
    list-style: none; 
   } 
   #date > li{ 
    float: left; 
    width: 34px; 
    height: 34px; 
    margin: 1px 1px; 
    border: 2px solid rgba(0,0,0,0); 
    line-height: 34px; 
    text-align: center; 
    cursor: pointer; 
   } 
   #date > .hover:hover{ 
    border: 2px solid red; 
   } 
    
   .active{ 
    color: red; 
   } 
  </style> 
 </head> 
 <body> 
   
  <div id="data"> 
   <p> 
    <span id="prev">上一月</span> 
    <span id="nian">2017</span> 
    <span id="next">下一月</span> 
   </p> 
   <h5 id="yue">一月</h5> 
   <ul id="title"> 
    <li>日</li> 
    <li>一</li> 
    <li>二</li> 
    <li>三</li> 
    <li>四</li> 
    <li>五</li> 
    <li>六</li> 
   </ul> 
   <ul id="date"> 
   </ul> 
  </div> 
   
  <script type="text/javascript"> 
   var dat = new Date(); //当前时间 
   var nianD = dat.getFullYear();//当前年份 
   var yueD = dat.getMonth(); //当前月 
   var tianD = dat.getDate(); //当前天 这保存的年月日 是为了 当到达当前日期 有对比 
    
   add(); //进入页面第一次渲染 
    
   function add(){ 
    document.getElementById('date').innerHTML = ""; 
     
    var nian = dat.getFullYear();//当前年份 
    var yue = dat.getMonth(); //当前月 
    var tian = dat.getDate(); //当前天 
    var arr=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]; 
    document.getElementById('nian').innerText = nian; 
    document.getElementById('yue').innerText = arr[yue]; 
     
    var setDat = new Date(nian,yue + 1,1 - 1); //把时间设为下个月的1号 然后天数减去1 就可以得到 当前月的最后一天; 
    var setTian = setDat.getDate(); //获取 当前月最后一天 
    var setZhou = new Date(nian,yue,1).getDay(); //获取当前月第一天 是 周几 
     
    for(var i=0;i<setZhou ;i++){//渲染空白 与 星期 对应上 
     var li=document.createElement('li'); 
     document.getElementById('date').appendChild(li); 
    } 
     
    for(var i=1;i<=setTian;i++){//利用获取到的当月最后一天 把 前边的 天数 都循环 出来 
     var li=document.createElement('li'); 
     li.innerText = i; 
     if(nian == nianD && yue == yueD && i == tianD){ 
      li.className = "active"; 
     }else{ 
      li.className = "hover"; 
     } 
      
     document.getElementById('date').appendChild(li); 
    } 
     
   } 
    
   document.getElementById("next").onclick = function(){ 
    dat.setMonth(dat.getMonth() + 1); //当点击下一个月时 对当前月进行加1; 
    add(); //重新执行渲染 获取去 改变后的 年月日 进行渲染; 
   }; 
   document.getElementById("prev").onclick = function(){ 
    dat.setMonth(dat.getMonth() - 1); //与下一月 同理 
    add(); 
   }; 
  </script> 
 </body> 
</html>

以上这篇js原生日历的实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript的面向对象(二)
Nov 09 Javascript
jquery radio 操作代码
Mar 16 Javascript
jQuery设置与获取HTML,文本和值的简单实例
Feb 26 Javascript
JS使用eval解析JSON的注意事项分析
Nov 14 Javascript
Jquery技巧(必须掌握)
Mar 16 Javascript
Angularjs中UI Router的使用方法
May 14 Javascript
JS hashMap实例详解
May 26 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
Vue基于NUXT的SSR详解
Oct 24 Javascript
vue实现移动端悬浮窗效果
Dec 01 Javascript
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
Dec 19 Vue.js
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 #Javascript
详解RequireJs官方使用教程
Oct 31 #Javascript
React Native中导航组件react-navigation跨tab路由处理详解
Oct 31 #Javascript
ES6解构赋值实例详解
Oct 31 #Javascript
js 获取json数组里面数组的长度实例
Oct 31 #Javascript
jQuery读取本地的json文件(实例讲解)
Oct 31 #jQuery
canvas绘制爱心的几种方法总结(推荐)
Oct 31 #Javascript
You might like
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
prototype 中文参数乱码解决方案
2009/11/09 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python类继承用法实例分析
2014/10/10 Python
python方向键控制上下左右代码
2018/01/20 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
python3 反射的四种基本方法解析
2019/08/26 Python
python微信公众号开发简单流程实现
2020/03/09 Python
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
我的大学生活职业生涯规划
2014/01/02 职场文书
心理健康日活动总结
2014/05/08 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android