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客户端解决方案 缓存提供程序
Jul 14 Javascript
检测jQuery.js是否已加载的判断代码
May 20 Javascript
jQuery选择器querySelector的使用指南
Jan 23 Javascript
JS把内容动态插入到DIV的实现方法
Jul 19 Javascript
js实现导航栏中英文切换效果
Jan 16 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
Mar 29 Javascript
vue2组件之select2调用的示例代码
Oct 12 Javascript
jquery实现楼层滚动效果
Jan 01 jQuery
详解Axios 如何取消已发送的请求
Oct 20 Javascript
vscode配置vue下的es6规范自动格式化详解
Mar 20 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 Javascript
vue动态配置模板 'component is'代码
Jul 04 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下过滤HTML代码的函数
2007/12/10 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
js实现右键菜单功能
2016/11/28 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
在Python中使用Neo4j数据库的教程
2015/04/16 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
Python元组常见操作示例
2019/02/19 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
本科生详细的自我评价
2013/09/19 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL