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控件
Mar 27 Javascript
一个关于javascript匿名函数的问题分析
Mar 30 Javascript
JavaScript中的值类型详细介绍
Dec 29 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
Feb 10 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
javascript实现多张图片左右无缝滚动效果
Mar 22 Javascript
ES6数组的扩展详解
Apr 25 Javascript
vue scroller返回页面记住滚动位置的实例代码
Jan 29 Javascript
vue中导出Excel表格的实现代码
Oct 18 Javascript
在layui下对元素进行事件绑定的实例
Sep 06 Javascript
Vue实现简单计算器案例
Feb 25 Javascript
vuex的使用和简易实现
Jan 07 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.NET的入门教程
2006/10/09 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
Bootstrap表单布局
2016/07/19 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
Python基础之函数用法实例详解
2014/09/10 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python的互斥锁与信号量详解
2019/09/12 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
纪检监察建议书
2014/05/19 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
股指期货心得体会
2014/09/10 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
超市员工辞职信范文
2015/05/12 职场文书
2015年度企业工作总结
2015/05/21 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
同意报考证明
2015/06/17 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书