【html css js】实现一个简易日历
时间:2019-11-16
本文章向大家介绍【html css js】实现一个简易日历,主要包括【html css js】实现一个简易日历使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
——【效果预览】
实现了日历最基础的功能,当前日期红色显示,可通过上方的左右按钮查看上一月或下一月的日期。
——【代码部分】
1. HTML
1 <body> 2 <div class="cldBody"> 3 <table> 4 <thead> 5 <tr> 6 <td colspan="7"> 7 <div class="top"> 8 <span id="left"><</span> 9 <span id="topDate"></span> 10 <span id="right">></span> 11 </div> 12 </td> 13 </tr> 14 <tr id="week" > 15 <td>日</td> 16 <td>一</td> 17 <td>二</td> 18 <td>三</td> 19 <td>四</td> 20 <td>五</td> 21 <td>六</td> 22 </tr> 23 </thead> 24 <tbody id="tbody" ></tbody> 25 </table> 26 </div> 27</body>
2. CSS
1 <style type="text/css"> 2 .cldBody{background:#f7f7f7;width: 420px;margin: 10px auto;} 3 .cldBody .top{height: 60px;line-height: 60px;text-align: center;position: relative;} 4 #topDate{font-size: 24px;} 5 #week td{font-size: 15px;} 6 td{width: 60px; height: 60px;line-height: 60px;text-align: center;font-size: 20px;} 7 #tbody td:hover{background: #ededed;cursor: pointer;} 8 .curDate{color: red;font-weight: bold;} 9 #left,#right{width: 60px;height: 60px;position: absolute;cursor: pointer;} 10 #left{left: 0;} 11 #right{right: 0;} 12 #left:hover, #right:hover{background-color: rgba(30, 30, 30, 0.2);} 13 </style>
【效果图】:
3.JS部分【博主引用了jq框架】
——1. 引入jq
1 <script src="js/jquery-3.4.1.min.js" type="text/javascript" charset="utf-8"></script>
——2. 添加月份到顶部
1 var date = new Date(); 2 var year = date.getFullYear(); 3 var nowyear = date.getFullYear(); 4 var month = date.getMonth()+1; 5 var nowmonth = date.getMonth()+1; 6 var dateday = date.getDate(); 7 var todateHtml = year + '年'+ month + '月'; 8 $('#topDate').text(todateHtml)
——3. 添加日历函数
1 function showcld(){ 2 var monthDay = [31,28,31,30,31,30,31,31,30,31,30,31]; // 创建数组存放每个月有多少天 ,默认2月为28天 3 // 判断闰年 4 if(year % 4 == 0 && year %100 != 0 || year % 400 == 0){ 5 monthDay[1] = 29; 6 } 7 // 计算每个月的天数 8 var days = monthDay[month-1]; 9 // 判断每月第一天为周几 10 date.setYear(year); //某年 11 date.setMonth(month-1); //某年的某月 12 date.setDate(1); // 某月的某天 13 var weekday = date.getDay(); // 判断某天是周几 14 // 补齐一号前的空格 15 var tbodyHtml = '<tr>'; 16 for(var i = 0; i<weekday; i++){ 17 tbodyHtml += "<td></td>"; 18 } 19 // 补齐每月的日期 20 var changLine = weekday; 21 var tagClass = ''; 22 for(i=1; i<=days; i++){//每一个日期的填充 23 if(year == nowyear && month == nowmonth && i == dateday) { 24 tagClass = "curDate";//当前日期对应格子 25 }else{ 26 tagClass = "isDate"; 27 } 28 tbodyHtml += "<td class=" + tagClass + ">" + i + "</td>"; 29 changLine = (changLine+1)%7; 30 if(changLine == 0 && i != days){//是否换行填充的判断 31 tbodyHtml += "</tr><tr>"; 32 } 33 } 34 $('#tbody').empty(); // 清空原有的内容 35 $('#tbody').append(tbodyHtml); //添加当前月份的日期内容 36}
——4.添加点击按钮事件
1 // 设置按钮点击事件 2 $('#left').click(function(){ 3 month = month-1; 4 if(month < 1){ 5 month = 12; 6 year--; 7 } 8 var todateHtml = year + '年'+ month + '月'; 9 $('#topDate').text(todateHtml); 10 showcld(); 11 }); 12 13 $('#right').click(function(){ 14 month = month+1; 15 if(month > 12){ 16 month = 1; 17 year++; 18 } 19 var todateHtml = year + '年'+ month + '月'; 20 $('#topDate').text(todateHtml); 21 showcld(); 22 }) 23 showcld(); //页面加载后执行函数
原文地址:https://www.cnblogs.com/lamian77/p/11872008.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Saltstack_使用指南05_数据系统-Pillar 4.1. 修改配置文件并重启服务4.2. 显示pillar信息6.1. pillar的sls文件编写6.2.
- Python Docker 查看私有仓库镜像【转】
- CentOS7 Docker私有仓库搭建及删除镜像 【转】
- spring的自定义标签都不会?你可能只学到了spring的皮毛
- 面试官:spring的BeanFatory和FactoryBean区别
- Saltstack_使用指南06_远程执行-指定目标
- 什么是缓存击穿、雪崩、穿透
- 如何卸载CDH7.1.1
- java8 stream的这些开发技巧,你值得好好收藏
- 面试官:mybatis中#{ }和${ }的区别
- python 学习笔记(9)——Python 正则表达式
- 万能的BeanPostProcessor是如何让spring无限扩展的?
- spring解决循环依赖为什么要用三级缓存?
- 深入剖析ThreadLocal
- spring事务的这10种坑,你稍不注意可能就会踩中!!!