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 相关文章推荐
取得窗口大小 兼容所有浏览器的js代码
Aug 09 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
Jan 15 Javascript
JavaScript定时器详解及实例
Aug 01 Javascript
ExtJS判断IE浏览器类型的方法
Feb 10 Javascript
Javascript中判断一个值是否为undefined的方法详解
Sep 28 Javascript
javascript实现用户点击数量统计
Dec 25 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
Jul 16 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
May 09 Javascript
js如何获取图片url的Blob值并预览示例代码
Mar 07 Javascript
JS动态图片的实现方法完整示例
Jan 13 Javascript
vue-路由精讲 二级路由和三级路由的作用
Aug 06 Javascript
vue 项目引入echarts 添加点击事件操作
Sep 09 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 SMS短信服务验证码发送方法
2017/07/11 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
犀利的js 函数集合
2009/06/11 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
Vue实现移动端拖拽交换位置
2020/07/29 Javascript
python使用celery实现异步任务执行的例子
2019/08/28 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
linux下进程间通信的方式
2013/01/23 面试题
int和Integer有什么区别
2013/05/25 面试题
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
单位刻章介绍信范文
2014/01/11 职场文书
营销总经理岗位职责
2014/02/02 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
测绘工程专业求职信
2014/07/15 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
艺术节开幕词
2015/01/28 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python