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在IE中“意外地调用了方法或属性访问”
Nov 19 Javascript
javascript 处理事件绑定的一些兼容写法
Dec 24 Javascript
js setTimeout 常见问题小结
Aug 13 Javascript
利用函数的惰性载入提高javascript代码执行效率
May 05 Javascript
浅谈JavaScript函数节流
Dec 09 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
Mar 21 Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
Apr 20 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
微信小程序商城项目之购物数量加减(3)
Apr 17 Javascript
JavaScript实现简单日历效果
Sep 11 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 Javascript
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
DIY实用性框形天线
2021/03/02 无线电
资料注册后发信小技巧
2006/10/09 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
关于Python 3中print函数的换行详解
2017/08/08 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
Python实现k-means算法
2018/02/23 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
python打开文件的方式有哪些
2020/06/29 Python
python实现邮件循环自动发件功能
2020/09/11 Python
数据库方面面试题
2012/04/22 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
优良学风班总结材料
2014/02/08 职场文书
推荐信模板
2014/05/09 职场文书
优秀语文教师事迹
2014/05/18 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android