js+html制作简单日历的方法


Posted in Javascript onJune 27, 2017

新手一枚,不会写什么高大上的博文,一些平时做的小练习,献丑

js+html制作简单日历的方法

代码:

<!doctype html>
<html>

 <head>
 <meta charset="utf-8">
 <title>无标题文档</title>
 <style>
  * {margin: 0;padding: 0}
  #calendar {width: 210px;margin: 100px auto;overflow: hidden;border: 1px solid #000;padding: 20px;position: relative}
  #calendar h4 {text-align: center;margin-bottom: 10px}
  #calendar .a1 {position: absolute;top: 20px;left: 20px;}
  #calendar .a2 {position: absolute;top: 20px;right: 20px;}
  #calendar .week {height: 30px;line-height: 20px;border-bottom: 1px solid #000;margin-bottom: 10px}
  #calendar .week li {float: left;width: 30px;height: 30px;text-align: center;list-style: none;}
  #calendar .dateList {overflow: hidden;clear: both}
  #calendar .dateList li {float: left;width: 30px;height: 30px;text-align: center;line-height: 30px;list-style: none;}
  #calendar .dateList .ccc {color: #ccc;}
  #calendar .dateList .red {background: #F90;color: #fff;}
  #calendar .dateList .sun {color: #f00;}
 </style>
 <script src="js/jquery-1.11.3.min.js"></script>
 <script>
  $(function() {

  //必要的数据
  //今天的年 月 日 ;本月的总天数;本月第一天是周几???
  var iNow=0;
  
  function run(n) {

   var oDate = new Date(); //定义时间
   oDate.setMonth(oDate.getMonth()+n);//设置月份
   var year = oDate.getFullYear(); //年
   var month = oDate.getMonth(); //月
   var today = oDate.getDate(); //日

   //计算本月有多少天
   var allDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];

   //判断闰年
   if(month == 1) {
   if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
    allDay = 29;
   }
   }

   //判断本月第一天是星期几
   oDate.setDate(1); //时间调整到本月第一天
   var week = oDate.getDay(); //读取本月第一天是星期几

   //console.log(week);
   $(".dateList").empty();//每次清空
   //插入空白

   for(var i = 0; i < week; i++) {
   $(".dateList").append("<li></li>");
   }

   //日期插入到dateList
   for(var i = 1; i <= allDay; i++) {
   $(".dateList").append("<li>" + i + "</li>")
   }
   //标记颜色=====================
   $(".dateList li").each(function(i, elm){
   //console.log(index,elm);
   var val = $(this).text();
   //console.log(val);
   if (n==0) {
    if(val<today){
    $(this).addClass('ccc')
   }else if(val==today){
    $(this).addClass('red')
   }else if(i%7==0 || i%7==6 ){
    $(this).addClass('sun')
   }
   }else if(n<0){
    $(this).addClass('ccc')
   }else if(i%7==0 || i%7==6 ){
    $(this).addClass('sun')
   }
   });

   //定义标题日期
   $("#calendar h4").text(year + "年" + (month + 1) + "月");
  };
  run(0);
  
  $(".a1").click(function(){
   iNow--;
   run(iNow);
  });
  
  $(".a2").click(function(){
   iNow++;
   run(iNow);
  })
  });
 </script>
 </head>

 <body>
 <div id="calendar">
  <h4>2013年10月</h4>
  <a href="##" rel="external nofollow" rel="external nofollow" class="a1">上月</a>
  <a href="##" rel="external nofollow" rel="external nofollow" class="a2">下月</a>
  <ul class="week">
  <li>日</li>
  <li>一</li>
  <li>二</li>
  <li>三</li>
  <li>四</li>
  <li>五</li>
  <li>六</li>

  </ul>
  <ul class="dateList"></ul>
 </div>

 </body>

</html>

更多精彩内容请点击专题《javascript日历插件使用方法汇总》进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于Aptana Studio生成自动备份文件的解决办法
Dec 23 Javascript
jQueryUI的Dialog的简单封装
Jun 07 Javascript
jQuery.extend()的实现方式详解及实例
Jun 29 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
原生JavaScript实现合并多个数组示例
Sep 21 Javascript
jQuery获取页面元素绝对与相对位置的方法
Jun 10 Javascript
JavaScript类型系统之正则表达式
Jan 05 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
Jul 07 Javascript
理解 javascript 中的函数表达式与函数声明
Jul 07 Javascript
JavaScript 继承 封装 多态实现及原理详解
Jul 29 Javascript
深入理解webpack process.env.NODE_ENV配置
Feb 23 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
Aug 25 Javascript
ionic环境配置及问题详解
Jun 27 #Javascript
微信小程序 密码输入(源码下载)
Jun 27 #Javascript
Javascript实现base64的加密解密方法示例
Jun 27 #Javascript
微信小程序 空白页重定向解决办法
Jun 27 #Javascript
ionic 自定义弹框效果
Jun 27 #Javascript
js脚本编写简单刷票投票系统
Jun 27 #Javascript
详解Vue.js搭建路由报错 router.map is not a function
Jun 27 #Javascript
You might like
PHP+MYSQL的文章管理系统(一)
2006/10/09 PHP
模仿OSO的论坛(三)
2006/10/09 PHP
php在字符串中查找另一个字符串
2008/11/19 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
javascript 节点排序 2
2011/01/31 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
vue中添加mp3音频文件的方法
2018/03/02 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python使用递归解决全排列数字示例
2014/02/11 Python
解析Python编程中的包结构
2015/10/25 Python
深入浅析Python字符编码
2015/11/12 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
python的setattr函数实例用法
2020/12/16 Python
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
教师岗位职责范本
2013/12/29 职场文书
公司授权委托书范文
2014/08/02 职场文书
专业见习报告范文
2014/11/03 职场文书
结婚主持人致辞
2015/07/28 职场文书
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
一级电子管军用接收机测评
2022/04/05 无线电