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 相关文章推荐
jQuery Tools tab(幻灯片)
Jul 14 Javascript
Extjs4中的分页应用结合前后台
Dec 13 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
May 11 Javascript
javascript生成不重复的随机数
Jul 17 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
Javascript数组Array基础介绍
Mar 13 Javascript
BootStrap的table表头固定tbody滚动的实例代码
Aug 24 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
Angular开发者指南之入门介绍
Mar 05 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 Javascript
基于element-ui封装表单金额输入框的方法示例
Jan 06 Javascript
详解JSON.parse和JSON.stringify用法
Feb 18 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
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
python实现哈希表
2014/02/07 Python
Python字符串处理函数简明总结
2015/04/13 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
Python如何实现邮件功能
2020/05/27 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
美国在线珠宝商店:SZUL
2017/02/11 全球购物
奥巴马演讲稿
2014/01/08 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
校运动会广播稿300字
2014/10/07 职场文书
民事二审代理词
2015/05/25 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技