javascript實(shí)現(xiàn)2016新年版日歷
更新時間:2016年01月25日 17:15:27 作者:馬富天
這篇文章主要為大家介紹了javascript實(shí)現(xiàn)2016新年版日歷的詳細(xì)代碼,感興趣的小伙伴們可以參考一下
先看看效果圖,效果比較簡單:

具體代碼:
<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); // 月份天數(shù)數(shù)組
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); // 表格所需行數(shù)
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;
}
您可能感興趣的文章:
- js css+html實(shí)現(xiàn)簡單的日歷
- js編寫當(dāng)天簡單日歷效果【實(shí)現(xiàn)代碼】
- 原生js制作日歷控件實(shí)例分享
- JavaScript制作簡單的日歷效果
- javascript html實(shí)現(xiàn)網(wǎng)頁版日歷代碼
- JS顯示日歷和天氣的方法
- ASP.NET中日歷控件和JS版日歷控件的使用方法(第5節(jié))
- 輕量級的原生js日歷插件calendar.js使用指南
- js實(shí)現(xiàn)日歷可獲得指定日期周數(shù)及星期幾示例分享(js獲取星期幾)
- 純js簡單日歷實(shí)現(xiàn)代碼
- 純js模仿windows系統(tǒng)日歷
相關(guān)文章
js對象實(shí)例詳解(JavaScript對象深度剖析,深度理解js對象)
下面小編就為大家?guī)硪黄猨s對象實(shí)例詳解(JavaScript對象深度剖析,深度理解js對象)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
js實(shí)現(xiàn)input框文字動態(tài)變換顯示效果
這篇文章主要介紹了js實(shí)現(xiàn)input框文字動態(tài)變換顯示效果,涉及javascript隨機(jī)字符串與中文的動態(tài)切換顯示效果,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08
javascript實(shí)現(xiàn)控制文字大中小顯示
網(wǎng)頁上可以自由改變字體大小是個非常有助于用戶體驗(yàn)的小功能,現(xiàn)在許多網(wǎng)站上都有此功能,今天我們來簡單實(shí)現(xiàn)下。2015-04-04
js實(shí)現(xiàn)按鈕控制帶有停頓效果的圖片滾動
這篇文章主要介紹了js實(shí)現(xiàn)按鈕控制帶有停頓效果的圖片滾動,,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08
Javascript動畫的實(shí)現(xiàn)原理淺析
這篇文章主要介紹了Javascript動畫的實(shí)現(xiàn)原理淺析,本文用兩個實(shí)例來解釋Javascript動畫的實(shí)現(xiàn)原理,需要的朋友可以參考下2015-03-03
JavaScript實(shí)現(xiàn)氣球打字的小游戲
這篇文章主要介紹了JavaScript實(shí)現(xiàn)氣球打字的小游戲,下面文章的思路來源于打字游戲,具體實(shí)現(xiàn)過程,需要的朋友可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-04-04

