在好例子网,分享、交流、成长!
您当前所在位置:首页CSS 开发实例Box Model → html+js+css实现日历

html+js+css实现日历

Box Model

下载此实例
  • 开发语言:CSS
  • 实例大小:0.03M
  • 下载次数:21
  • 浏览次数:278
  • 发布时间:2021-06-26
  • 实例类别:Box Model
  • 发 布 人:欧也针不戳
  • 文件格式:.zip
  • 所需积分:6
 相关标签: HTML CSS js 日历

实例介绍

【实例简介】

解压后才能正常运行

主程序为'日历.html'

【实例截图】

【核心代码】

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>日历</title>
<style type="text/css">
body {
	background-color: #efefef;
}
#CalendarMain {
	width: 300px;
	height: 300px;
	border: 1px solid #ccc;
	margin: 0 auto;
	margin-top: 100px;
}
#title {
	width: 100%;
	height: 30px;
	background-color: #b9121b;
}
.selectBtn {
	font-weight: 900;
	font-size: 15px;
	color: #fff;
	cursor: pointer;
	text-decoration: none;
	padding: 7px 10px 6px 10px;
}
.selectBtn:hover {
	background-color: #1d953f;
}
.selectYear {
	float: left;
	margin-left: 50px;
	position: absolute;
}
.selectMonth {
	float: left;
	margin-left: 120px;
	position: absolute;
}
.month {
	float: left;
	position: absolute;
}
.nextMonth {
	float: right;
}
.currentDay {
	float: right;
}
#context {
	background-color: #fff;
	width: 100%;
}
.week {
	width: 100%;
	height: 30px;
}
.week>h3 {
	float: left;
	color: #808080;
	text-align: center;
	margin: 0;
	padding: 0;
	margin-top: 5px;
	font-size: 16px;
}
.dayItem {
	float: left;
}
.lastItem {
	color: #d1c7b7 !important;
}
.item {
	color: #333;
	float: left;
	text-align: center;
	cursor: pointer;
	margin: 0;
	font-family: "微软雅黑";
	font-size: 13px;
}
.item:hover {
	color: #b9121b;
}
.currentItem>a {
	background-color: #b9121b;
	width: 25px;
	line-height: 25px;
	float: left;
	-webkit-border-radius: 50%;
	-moz-border-radius: 50%;
	border-radius: 50%;
	color: #fff;
}
#foots {
	width: 100%;
	height: 35px;
	background-color: #fff;
	border-top: 1px solid #ccc;
	margin-top: -1px;
}
#footNow {
	float: right;
	margin: 6px 15px 0 0;
	color: #009ad6;
	font-family: "微软雅黑";
}
#Container {
	overflow: hidden;
	float: left;
}
#center {
	width: 100%;
	overflow: hidden;
}
#centerMain {
	width: 300%;
	margin-left: -100%;
}
#selectYearDiv {
	float: left;
	background-color: #fff;
}
#selectYearDiv>div {
	float: left;
	text-align: center;
	font-family: "微软雅黑";
	font-size: 16px;
	border: 1px solid #ccc;
	margin-left: -1px;
	margin-top: -1px;
	cursor: pointer;
	color: #909090;
}
.currentYearSd, .currentMontSd {
	color: #ff4400 !important;
}
#selectMonthDiv {
	float: left;
	background-color: #fff;
}
#selectMonthDiv>div {
	color: #909090;
	float: left;
	text-align: center;
	font-family: "微软雅黑";
	font-size: 16px;
	border: 1px solid #ccc;
	margin-left: -1px;
	margin-top: -1px;
	cursor: pointer;
}
#selectYearDiv>div:hover, #selectMonthDiv>div:hover {
	background-color: #efefef;
}
#centerCalendarMain {
	float: left;
}
</style>
</head>
<body>
<div id="Demo">
<div id="CalendarMain">
  <div id="title"> <a class="selectBtn month" href="javascript:" onClick="CalendarHandler.CalculateLastMonthDays();"><</a><a class="selectBtn selectYear" href="javascript:" onClick="CalendarHandler.CreateSelectYear(CalendarHandler.showYearStart);">2014年</a><a class="selectBtn selectMonth" onClick="CalendarHandler.CreateSelectMonth()">6月</a> <a class="selectBtn nextMonth" href="javascript:" onClick="CalendarHandler.CalculateNextMonthDays();">></a><a class="selectBtn currentDay" href="javascript:" onClick="CalendarHandler.CreateCurrentCalendar(0,0,0);">返回今天</a></div>
  <div id="context">
    <div class="week">
      <h3> 一 </h3>
      <h3> 二 </h3>
      <h3> 三 </h3>
      <h3> 四 </h3>
      <h3> 五 </h3>
      <h3> 六 </h3>
      <h3> 日 </h3>
    </div>
    <div id="center">
      <div id="centerMain">
        <div id="selectYearDiv"></div>
        <div id="centerCalendarMain">
          <div id="Container"></div>
        </div>
        <div id="selectMonthDiv"></div>
      </div>
    </div>
    <div id="foots"><a id="footNow">19:14:34</a></div>
  </div>
</div>
</body>
<script type="text/javascript" src="js/jquery-1.4.min.js"></script>
<script type="text/javascript">
		$(document).ready(function(e) {
			CalendarHandler.initialize();
		});

		var CalendarHandler = {
			currentYear: 0,
			currentMonth: 0,
			isRunning: false,
			showYearStart:2009,
			tag:0,
			initialize: function() {
				$calendarItem = this.CreateCalendar(0, 0, 0);
				$("#Container").append($calendarItem);

				$("#context").css("height", $("#CalendarMain").height() - 65   "px");
				$("#center").css("height", $("#context").height() - 30   "px");
				$("#selectYearDiv").css("height", $("#context").height() - 30   "px").css("width", $("#context").width()   "px");
				$("#selectMonthDiv").css("height", $("#context").height() - 30   "px").css("width", $("#context").width()   "px");
				$("#centerCalendarMain").css("height", $("#context").height() - 30   "px").css("width", $("#context").width()   "px");

				$calendarItem.css("height", $("#context").height() - 30   "px"); //.css("visibility","hidden");
				$("#Container").css("height", "0px").css("width", "0px").css("margin-left", $("#context").width() / 2   "px").css("margin-top", ($("#context").height() - 30) / 2   "px");
				$("#Container").animate({
					width: $("#context").width()   "px",
					height: ($("#context").height() - 30) * 2   "px",
					marginLeft: "0px",
					marginTop: "0px"
				}, 300, function() {
					$calendarItem.css("visibility", "visible");
				});
				$(".dayItem").css("width", $("#context").width()   "px");
				var itemPaddintTop = $(".dayItem").height() / 6;
				$(".item").css({
					"width": $(".week").width() / 7   "px",
					"line-height": itemPaddintTop   "px",
					"height": itemPaddintTop   "px"
				});
				$(".currentItem>a").css("margin-left", ($(".item").width() - 25) / 2   "px").css("margin-top", ($(".item").height() - 25) / 2   "px");
				$(".week>h3").css("width", $(".week").width() / 7   "px");
				this.RunningTime();
			},
			CreateSelectYear: function(showYearStart) {
				CalendarHandler.showYearStart=showYearStart;
				$(".currentDay").show();
				$("#selectYearDiv").children().remove();
				var yearindex = 0;
				for (var i = showYearStart; i < showYearStart 12; i  ) {
					yearindex  ;
					if(i==showYearStart){
						$last=$("<div>往前</div>");
						$("#selectYearDiv").append($last);
						$last.click(function(){
							CalendarHandler.CreateSelectYear(CalendarHandler.showYearStart-10);
						});
						continue;
					}
					if(i==showYearStart 11){
						$next=$("<div>往后</div>");
						$("#selectYearDiv").append($next);
						$next.click(function(){
							CalendarHandler.CreateSelectYear(CalendarHandler.showYearStart 10);
						});
						continue;
					}
					
					if (i == this.currentYear) {
						$yearItem=$("<div class=\"currentYearSd\" id=\""   yearindex   "\">"   i   "</div>")
					
					}
					else{
						 $yearItem=$("<div id=\""   yearindex   "\">"   i   "</div>");
					}
					$("#selectYearDiv").append($yearItem);
					$yearItem.click(function(){
						$calendarItem=CalendarHandler.CreateCalendar(Number($(this).html()),1,1);
						$("#Container").append($calendarItem);
						CalendarHandler.CSS()
					    CalendarHandler.isRunning = true;
					    $($("#Container").find(".dayItem")[0]).animate({
						height: "0px"
					    }, 300, function() {
						$(this).remove();
						CalendarHandler.isRunning = false;
					    });
						$("#centerMain").animate({
						marginLeft: -$("#center").width()   "px"
					}, 500);
					});
					if (yearindex == 1 || yearindex == 5 || yearindex == 9) $("#selectYearDiv").find("#"   yearindex).css("border-left-color", "#fff");
					if (yearindex == 4 || yearindex == 8 || yearindex == 12) $("#selectYearDiv").find("#"   yearindex).css("border-right-color", "#fff");
					
				}
				$("#selectYearDiv>div").css("width", ($("#center").width() - 4) / 4   "px").css("line-height", ($("#center").height() - 4) / 3   "px");
				$("#centerMain").animate({
					marginLeft: "0px"
				}, 300);
			},
			CreateSelectMonth: function() {
				$(".currentDay").show();
				$("#selectMonthDiv").children().remove();
				for (var i = 1; i < 13; i  ) {
					if (i == this.currentMonth) $monthItem=$("<div class=\"currentMontSd\" id=\""   i   "\">"   i   "月</div>");
					else  $monthItem=$("<div id=\""   i   "\">"   i   "月</div>");
					$("#selectMonthDiv").append($monthItem);
					$monthItem.click(function(){
						$calendarItem=CalendarHandler.CreateCalendar(CalendarHandler.currentYear,Number($(this).attr("id")),1);
						$("#Container").append($calendarItem);
						CalendarHandler.CSS()
					    CalendarHandler.isRunning = true;
					    $($("#Container").find(".dayItem")[0]).animate({
						height: "0px"
					    }, 300, function() {
						$(this).remove();
						CalendarHandler.isRunning = false;
					    });
						$("#centerMain").animate({
						marginLeft: -$("#center").width()   "px"
					}, 500);
					});
					if (i == 1 || i == 5 || i == 9) $("#selectMonthDiv").find("#"   i).css("border-left-color", "#fff");
					if (i == 4 || i == 8 || i == 12) $("#selectMonthDiv").find("#"   i).css("border-right-color", "#fff");
				}
				$("#selectMonthDiv>div").css("width", ($("#center").width() - 4) / 4   "px").css("line-height", ($("#center").height() - 4) / 3   "px");
				$("#centerMain").animate({
					marginLeft: -$("#center").width() * 2   "px"
				}, 300);
			},
			IsRuiYear: function(aDate) {
				return (0 == aDate % 4 && (aDate % 100 != 0 || aDate % 400 == 0));
			},
			CalculateWeek: function(y, m, d) {
				var arr = "7123456".split("");
				with(document.all) {
					var vYear = parseInt(y, 10);
					var vMonth = parseInt(m, 10);		
					var vDay = parseInt(d, 10);
				}
				var week =arr[new Date(y,m-1,vDay).getDay()];
				return week;
			},
			CalculateMonthDays: function(m, y) {
				var mDay = 0;
				if (m == 0 || m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
					mDay = 31;
				} else {
					if (m == 2) {
						//判断是否为芮年
						var isRn = this.IsRuiYear(y);
						if (isRn == true) {
							mDay = 29;
						} else {
							mDay = 28;
						}
					} else {
						mDay = 30;
					}
				}
				return mDay;
			},
			CreateCalendar: function(y, m, d) {
				$dayItem = $("<div class=\"dayItem\"></div>");
				//获取当前月份的天数
				var nowDate = new Date();
				if(y==nowDate.getFullYear()&&m==nowDate.getMonth() 1||(y==0&&m==0))
				$(".currentDay").hide();
				var nowYear = y == 0 ? nowDate.getFullYear() : y;
				this.currentYear = nowYear;
				var nowMonth = m == 0 ? nowDate.getMonth()   1 : m;
				this.currentMonth = nowMonth;
				var nowDay = d == 0 ? nowDate.getDate() : d;
				$(".selectYear").html(nowYear   "年");
				$(".selectMonth").html(nowMonth   "月");
				var nowDaysNub = this.CalculateMonthDays(nowMonth, nowYear);
				//获取当月第一天是星期几
				//var weekDate = new Date(nowYear "-" nowMonth "-" 1);
				//alert(weekDate.getDay());
				var nowWeek = parseInt(this.CalculateWeek(nowYear, nowMonth, 1));
				//nowWeek=weekDate.getDay()==0?7:weekDate.getDay();
				//var nowWeek=weekDate.getDay();
				//获取上个月的天数
				var lastMonthDaysNub = this.CalculateMonthDays((nowMonth - 1), nowYear);

				if (nowWeek != 0) {
					//生成上月剩下的日期
					for (var i = (lastMonthDaysNub - (nowWeek - 1)); i < lastMonthDaysNub; i  ) {
						$dayItem.append("<div class=\"item lastItem\"><a>"   (i   1)   "</a></div>");
					}
				}

				//生成当月的日期
				for (var i = 0; i < nowDaysNub; i  ) {
					if (i == (nowDay - 1)) $dayItem.append("<div class=\"item currentItem\"><a>"   (i   1)   "</a></div>");
					else $dayItem.append("<div class=\"item\"><a>"   (i   1)   "</a></div>");
				}

				//获取总共已经生成的天数
				var hasCreateDaysNub = nowWeek   nowDaysNub;
				//如果小于42,往下个月推算
				if (hasCreateDaysNub < 42) {
					for (var i = 0; i <= (42 - hasCreateDaysNub); i  ) {
						$dayItem.append("<div class=\"item lastItem\"><a>"   (i   1)   "</a></div>");
					}
				}

				return $dayItem;
			},
			CSS: function() {
				var itemPaddintTop = $(".dayItem").height() / 6;
				$(".item").css({
					"width": $(".week").width() / 7   "px",
					"line-height": itemPaddintTop   "px",
					"height": itemPaddintTop   "px"
				});
				$(".currentItem>a").css("margin-left", ($(".item").width() - 25) / 2   "px").css("margin-top", ($(".item").height() - 25) / 2   "px");
			},
			CalculateNextMonthDays: function() {
				if (this.isRunning == false) {
					$(".currentDay").show();
					var m = this.currentMonth == 12 ? 1 : this.currentMonth   1;
					var y = this.currentMonth == 12 ? (this.currentYear   1) : this.currentYear;
					var d = 0;
					var nowDate = new Date();
					if (y == nowDate.getFullYear() && m == nowDate.getMonth()   1) d = nowDate.getDate();
					else d = 1;
					$calendarItem = this.CreateCalendar(y, m, d);
					$("#Container").append($calendarItem);

					this.CSS();
					this.isRunning = true;
					$($("#Container").find(".dayItem")[0]).animate({
						height: "0px"
					}, 300, function() {
						$(this).remove();
						CalendarHandler.isRunning = false;
					});
				}
			},
			CalculateLastMonthDays: function() {
				if (this.isRunning == false) {
					$(".currentDay").show();
					var nowDate = new Date();					
					var m = this.currentMonth == 1 ? 12 : this.currentMonth - 1;
					var y = this.currentMonth == 1 ? (this.currentYear - 1) : this.currentYear;
					var d = 0;
					
					if (y == nowDate.getFullYear() && m == nowDate.getMonth()   1) d = nowDate.getDate();
					else d = 1;
					$calendarItem = this.CreateCalendar(y, m, d);
					$("#Container").append($calendarItem);
					var itemPaddintTop = $(".dayItem").height() / 6;
					this.CSS();
					this.isRunning = true;
					$($("#Container").find(".dayItem")[0]).animate({
						height: "0px"
					}, 300, function() {
						$(this).remove();
						CalendarHandler.isRunning = false;
					});
				}
			},
			CreateCurrentCalendar: function() {
				if (this.isRunning == false) {
					$(".currentDay").hide();
					$calendarItem = this.CreateCalendar(0, 0, 0);
					$("#Container").append($calendarItem);
					this.isRunning = true;
					$($("#Container").find(".dayItem")[0]).animate({
						height: "0px"
					}, 300, function() {
						$(this).remove();
						CalendarHandler.isRunning = false;
					});
					this.CSS();
					$("#centerMain").animate({
						marginLeft: -$("#center").width()   "px"
					}, 500);
				}
			},
			RunningTime: function() {
				var mTiming = setInterval(function() {
					var nowDate = new Date();
					var h=nowDate.getHours()<10?"0" nowDate.getHours():nowDate.getHours();
					var m=nowDate.getMinutes()<10?"0" nowDate.getMinutes():nowDate.getMinutes();
					var s=nowDate.getSeconds()<10?"0" nowDate.getSeconds():nowDate.getSeconds();
					var nowTime = h   ":"   m   ":"   s;
					$("#footNow").html("本地时间 " nowTime);
				}, 1000);

			}
		}
		</script>

<!--[if IE 7]>
   <style type="text/css">
			.menuItem{ margin-left:-130px; } 
		</style>
    <![endif]-->

</html>

标签: HTML CSS js 日历

实例下载地址

html+js+css实现日历

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警