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 相关文章推荐
利用JQuery为搜索栏增加tag提示
Jun 22 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
Aug 01 Javascript
浅谈Javascript中的Function与Object
Jan 26 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
Dec 20 Javascript
AngularJS封装指令方法详解
Dec 12 Javascript
js实现的简练高效拖拽功能示例
Dec 21 Javascript
Javascript实现倒计时时差效果
May 18 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
Apr 17 Javascript
使用React手写一个对话框或模态框的方法示例
Apr 25 Javascript
vue+web端仿微信网页版聊天室功能
Apr 30 Javascript
React学习之JSX与react事件实例分析
Jan 06 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
谈谈PHP连接Access数据库的注意事项
2016/08/12 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
拥抱模块化的JavaScript
2012/03/07 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
详解node中创建服务进程
2017/05/09 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 3.x 新特性及10大变化
2015/06/12 Python
python控制台中实现进度条功能
2015/11/10 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
python实时监控logstash日志代码
2020/04/27 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
装潢设计专业推荐信模板
2013/11/26 职场文书
人资专员岗位职责
2014/04/04 职场文书
科技节口号
2014/06/19 职场文书
银行进社区活动总结
2014/07/07 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
学校运动会广播稿
2014/10/11 职场文书
科技活动总结范文
2015/05/11 职场文书
少先队中队工作总结2015
2015/07/23 职场文书