先看看效果图,效果比较简单:
具体代码:
<html>
<head>
<title>javaScript日历</title>
<meta charset=\"utf-8\"/>
<style type=\"text/css\">
*{
margin:0;
padding:0;
}
.calendar{
width:300px;
margin:100px auto;
text-align:center;
font-size:12px;
}
.calendar .wrap{
width:100%;
height:36px;
line-height:36px;
}
.calendar .wrap .theYear{
}
.calendar .wrap .theMonth{
color:#666;
}
.calendar .wrap span{
font-size:24px;
color: #DDD;
cursor:pointer;
font-family: Georgia, \"Times New Roman\", Times, serif;
}
.calendar .wrap span b:hover{
color: #777;
}
.calendar .wrap .span{
float:left;
}
.calendar .wrap .prev_year{
float:right;
margin-right:12px;
font-family:\"sans-serif\";
font-weight:bold;
font-size:14px;
}
.calendar .wrap .next_year{
float:right;
font-family:\"sans-serif\";
font-weight:bold;
font-size:14px;
}
.calendar .wrap .prev_month{
float:right;
margin-right:12px;
font-family:\"sans-serif\";
font-weight:bold;
margin-right:10px;
}
.calendar .wrap .next_month{
float:right;
font-family:\"sans-serif\";
font-weight:bold;
margin-right:10px;
}
.calendar .wrap .next_year:hover,.calendar .wrap .prev_year:hover,
.calendar .wrap .next_month:hover,.calendar .wrap .prev_month:hover{
color:#999;
}
.calendar table{
width:100%;
border-collapse:collapse;
}
.calendar .header{
background-color:#EEE;
font-family:\"Microsoft YaHei\";
}
.calendar .header td{
cursor:default;
}
.calendar td{
border:1px solid #CCC;
line-height:36px;
cursor:pointer;
}
.calendar td:hover{
background-color:#EEE;
}
.calendar .empty{
cursor:default;
}
.calendar .empty:hover{
background-color:#FFF;
}
.calendar .today{
background-color:#66BE8C;
color:#FFF;
}
.calendar .today:hover{
background-color:#66BE8C;
color:#FFF;
}
</style>
<script src=\"jquery-1.8.2.js\"></script>
<script src=\"func.js\"></script>
</head>
<body>
<div id=\"calendar\" class=\"calendar\">
<div class=\"wrap\">
<span class=\"span\"><b id=\"theYear\" class=\"theYear\">2016</b>/<b id=\"theMonth\" class=\"theMonth\">1</b></span>
<span class=\"next_year\" id=\"next_year\" title=\"下一年\">>></span>
<span class=\"next_month\" id=\"next_month\" title=\"下一月\">></span>
<span class=\"prev_month\" id=\"prev_month\" title=\"上一月\"><</span>
<span class=\"prev_year\" id=\"prev_year\" title=\"上一年\"><<</span>
</div>
<table cellpadding=\"0\" cellspacing=\"0\">
<tr class=\"header\">
<td>日</td>
<td>一</td>
<td>二</td>
<td>三</td>
<td>四</td>
<td>五</td>
<td>六</td>
</tr>
</table>
</div>
<script type=\"text/javascript\">
$(\"#prev_month\").click(function(){
var theMonth=eval($(\"#theMonth\").html());
var theYear=eval($(\"#theYear\").html());
if(theMonth<=1){
$(\"#theMonth\").html(\"12\");
if(theYear<=1){
$(\"#theYear\").html(1);
}else{
$(\"#theYear\").html(theYear-1);
}
}else{
$(\"#theMonth\").html(theMonth-1);
}
cur_year=eval($(\"#theYear\").html());
cur_mon=eval($(\"#theMonth\").html());
$(\"#calendar table tr\").not(\".header\").remove();
$(\"#calendar table\").append(createCalendar(cur_year,cur_mon));
$(\"#calendar table tr\").not(\".header\").hide().fadeIn(500);
})
$(\"#next_month\").click(function(){
var theMonth=eval($(\"#theMonth\").html());
if(theMonth>=12){
var theYear=eval($(\"#theYear\").html());
if(theYear>=2200){
$(\"#theYear\").html(2200);
}else{
$(\"#theYear\").html(eval(theYear+1));
}
$(\"#theMonth\").html(1);
}else{
$(\"#theMonth\").html(eval(theMonth+1));
}
cur_year=eval($(\"#theYear\").html());
cur_mon=eval($(\"#theMonth\").html());
$(\"#calendar table tr\").not(\".header\").remove();
$(\"#calendar table\").append(createCalendar(cur_year,cur_mon));
$(\"#calendar table tr\").not(\".header\").hide().fadeIn(500);
})
$(\"#prev_year\").click(function(){
var theYear=eval($(\"#theYear\").html());
if(theYear<=1){
$(\"#theYear\").html(1);
}else{
$(\"#theYear\").html(eval(theYear-1));
}
cur_year=eval($(\"#theYear\").html());
cur_mon=eval($(\"#theMonth\").html());
$(\"#calendar table tr\").not(\".header\").remove();
$(\"#calendar table\").append(createCalendar(cur_year,cur_mon));
$(\"#calendar table tr\").not(\".header\").hide().fadeIn(500);
})
$(\"#next_year\").click(function(){
var theYear=eval($(\"#theYear\").html());
if(theYear>=2200){
$(\"#theYear\").html(2200);
}else{
$(\"#theYear\").html(eval(theYear+1));
}
cur_year=eval($(\"#theYear\").html());
cur_mon=eval($(\"#theMonth\").html());
$(\"#calendar table tr\").not(\".header\").remove();
$(\"#calendar table\").append(createCalendar(cur_year,cur_mon));
$(\"#calendar table tr\").not(\".header\").hide().fadeIn(500);
})
$(\"#calendar table\").append(createCalendar());
</script>
</body>
</html>
JavaScript代码
// 判断是否为闰年
function IsLeapYear(year){
if((year%400==0)||(year%4==0 && year%100!=0)){
return true;
}
return false;
}
// 日历
function createCalendar(year,month,date){
var d=new Date();
if(!year || year<=0){
cur_year=d.getFullYear(); // 年份
}else{
cur_year=year;
}
if(!month || month<=0){
cur_mon=d.getMonth(); // 日期
}else{
cur_mon=month-1;
}
if(!date || date<=0){
cur_date=d.getDate(); // 日期
}else{
cur_date=date;
}
month_days=new Array(31,28+IsLeapYear(d.getFullYear()),31,30,31,30,31,31,30,31,30,31); // 月份天数数组
month_firstday_date=new Date(cur_year,cur_mon,1);
monthDays=month_days[cur_mon];
monthFirstday=month_firstday_date.getDay(); // 月份的第一天是星期几
lines=Math.ceil((monthDays+monthFirstday)/7); // 表格所需行数
var calendarBody=\"\";
for(var i=0;i<lines;i++){
calendarBody+=\"<tr class=\'line\'>\";
for(var j=0;j<7;j++){
idx=i*7+j; // 单元格自然序列号
if(i==0 && idx<monthFirstday){
calendarBody+=\"<td class=\'empty\'></td>\";
}else if(idx<monthDays+monthFirstday){
var date=idx+1-monthFirstday;
if(date==cur_date && cur_mon==d.getMonth() && cur_year==d.getFullYear()){
calendarBody+=\"<td class=\'today\'>\"+date+\"</td>\";
}else{
calendarBody+=\"<td>\"+date+\"</td>\";
}
}else{
calendarBody+=\"<td class=\'empty\'></td>\";
}
}
calendarBody+=\"</tr>\";
}
return calendarBody;
}
本文地址:https://www.stayed.cn/item/11287
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我