JS日历,(万年历)功能和界面都挺好的
2007-09-27 16:08
344 查看
<style type="text/css">
.body,td{font-family:"Arial";font-size:8pt;color:#000000;}
.TrOut{background:#dddddd;height:26;border:1 solid #999999;border-top-color:#f4f4f4;border-left-color:#f4f4f4;}
.TdOver{background:#eeeeee;height:20;border:1 solid #ffffff;border-top-color:#9c9c9c;border-left-color:#9c9c9c;}
.TdOut{background:#eeeeee;height:20;border:1 solid #9c9c9c;border-top-color:#ffffff;border-left-color:#ffffff;}
</style>
<Script language="JScript" defer>
function TableFunction(){
this.GetDateStr=function(y,m){
this.DayArray=[];
for(var i=0;i<42;i++)this.DayArray[i]=" ";
for(var i=0;i<new Date(y,m,0).getDate();i++)this.DayArray[i+new Date(y,m-1,1).getDay()]=i+1;
return this.DayArray;
}
this.GetTableStr=function(y,m){
this.DateArray=["日","一","二","三","四","五","六"];
this.DStr="<table oncontextmenu='return false' onselectstart='return false' style='width:160;cursor:default;border:1 solid #9c9c9c;border-right:0;border-bottom:0;filter:progid:dximagetransform.microsoft.dropshadow(color=#e3e3e3,offx=3,offy=3,positive=true)' border='0' cellpadding='0' cellspacing='0'>/n"+
"<tr><td colspan='7' class='TrOut'>"+
"<table width='100%' height='100%'border='0' cellpadding='0' cellspacing='0'><tr align='center'>/n"+
"<td width='20' style='font-family:/"webdings/";font-size:9pt' onclick='TableFunction().JumpToRun(/"b/")' onmouseover='this.style.color=/"#ff9900/"' onmouseout='this.style.color=/"/"'>3</td>/n"+
"<td id='YearTD' width='70' onmouseover='this.style.background=/"#cccccc/"' onmouseout='this.style.background=/"/"' onclick='TableFunction().WriteSelect(this,this.innerText.split(/" /")[0],/"y/",false)'>"+y+" 年</td>/n"+
"<td id='MonthTD' width='47' onmouseover='this.style.background=/"#cccccc/"' onmouseout='this.style.background=/"/"' onclick='TableFunction().WriteSelect(this,this.innerText.split(/" /")[0],/"m/",false)'>"+m+" 月</td>/n"+
"<td width='20' style='font-family:/"webdings/";font-size:9pt' onclick='TableFunction().JumpToRun(/"n/")' onmouseover='this.style.color=/"#ff9900/"' onmouseout='this.style.color=/"/"'>4</td></tr></table>/n"+
"</td></tr>/n"+
"<tr align='center'>/n";
for(var i=0;i<7;i++)
this.DStr+="<td class='TrOut'>"+DateArray[i]+"</td>/n";
this.DStr+="</tr>/n";
for(var i=0;i<6;i++){
this.DStr+="<tr align='center'>/n";
for(var j=0;j<7;j++){
var CS=new Date().getDate()==this.GetDateStr(y,m)[i*7+j]?"TdOver":"TdOut";
this.DStr+="<td id='TD' class='"+CS+"' cs='"+CS+"' onmouseover='this.className=/"TdOver/"' onmouseout='if(this.cs!=/"TdOver/")this.className=/"TdOut/"' onclick='TableFunction().AlertDay()'>"+this.GetDateStr(y,m)[i*7+j]+"</td>/n";
}
this.DStr+="</tr>/n";
}
this.DStr+="</tabe>";
return this.DStr;
}
this.WriteSelect=function(obj,values,action,getobj){
if(values=="")return;
if(getobj){
obj.innerHTML=values+(action=="y"?" 年":" 月");
this.RewriteTableStr(YearTD.innerText.split(" ")[0],MonthTD.innerText.split(" ")[0]);
return false;
}
var StrArray=[];
if(action=="y"){
for(var i=0;i<15;i++){
var year=values-7+i;
StrArray[i]="<option value='"+year+"' "+(values==year?"selected":"")+"> "+year+"年</option>/n";
}
obj.innerHTML="<select id='select1' style='width:67' onchange='TableFunction().WriteSelect(parentElement,this.value,/"y/",true)' onblur='YearTD.innerText=this.value+/" 年/"'>/n"+StrArray.join("")+"</select>";
select1.focus();
}
if(action=="m"){
for(var i=1;i<13;i++)
StrArray[i]="<option value='"+i+"' "+(i==values?"selected":"")+"> "+i+"月</option>/n";
obj.innerHTML="<select id='select2' style='width:47' onchange='TableFunction().WriteSelect(parentElement,this.value,/"m/",true)' onblur='MonthTD.innerText=this.value+/" 月/"'>/n"+StrArray.join("")+"</select>";
select2.focus();
}
}
this.RewriteTableStr=function(y,m){
var TArray=this.GetDateStr(y,m);
var len=TArray.length;
for(var i=0;i<len;i++){
TD[i].innerHTML=TArray[i];
TD[i].className="TdOut";
TD[i].cs="TdOut";
if(new Date().getYear()==y&&new Date().getMonth()+1==m&&new Date().getDate()==TArray[i]){
TD[i].className="TdOver";
TD[i].cs="TdOver";
}
}
}
this.JumpToRun=function(action){
var YearNO=YearTD.innerText.split(' ')[0];
var MonthNO=MonthTD.innerText.split(' ')[0];
if(action=="b"){
if(MonthNO=="1"){
MonthNO=13;
YearNO=YearNO-1;
}
MonthTD.innerText=MonthNO-1+" 月";
YearTD.innerText=YearNO+" 年";
this.RewriteTableStr(YearNO,MonthNO-1);
}
if(action=="n"){
if(MonthNO=="12"){
MonthNO=0;
YearNO=YearNO-(-1);
}
YearTD.innerText=YearNO+" 年";
MonthTD.innerText=MonthNO-(-1)+" 月";
this.RewriteTableStr(YearNO,MonthNO-(-1));
}
}
this.AlertDay=function(){
if(event.srcElement.innerText!=" ")
document.all('oText').value=YearTD.innerText.split(' ')[0]+"年"+MonthTD.innerText.split(' ')[0]+"月"+event.srcElement.innerText+"日";
}
return this;
}
document.all('oDiv').innerHTML=TableFunction().GetTableStr(new Date().getYear(),new Date().getMonth()+1);
</Script>
<span style="border:1px solid menu;">
<input type="text" id="oText" onpropertychange="document.all('oDiv').style.display='none';" style="border:0px;width:140px;height:20px;" readonly><input type="button" style="font:12pt webdings;border:0px;width:18px;height:20px;cursor:hand;" value="6" onclick="document.all('oDiv').style.display='inline';" onfocus="blur();"></span>
<div id="oDiv" style="display:none;"></div>
.body,td{font-family:"Arial";font-size:8pt;color:#000000;}
.TrOut{background:#dddddd;height:26;border:1 solid #999999;border-top-color:#f4f4f4;border-left-color:#f4f4f4;}
.TdOver{background:#eeeeee;height:20;border:1 solid #ffffff;border-top-color:#9c9c9c;border-left-color:#9c9c9c;}
.TdOut{background:#eeeeee;height:20;border:1 solid #9c9c9c;border-top-color:#ffffff;border-left-color:#ffffff;}
</style>
<Script language="JScript" defer>
function TableFunction(){
this.GetDateStr=function(y,m){
this.DayArray=[];
for(var i=0;i<42;i++)this.DayArray[i]=" ";
for(var i=0;i<new Date(y,m,0).getDate();i++)this.DayArray[i+new Date(y,m-1,1).getDay()]=i+1;
return this.DayArray;
}
this.GetTableStr=function(y,m){
this.DateArray=["日","一","二","三","四","五","六"];
this.DStr="<table oncontextmenu='return false' onselectstart='return false' style='width:160;cursor:default;border:1 solid #9c9c9c;border-right:0;border-bottom:0;filter:progid:dximagetransform.microsoft.dropshadow(color=#e3e3e3,offx=3,offy=3,positive=true)' border='0' cellpadding='0' cellspacing='0'>/n"+
"<tr><td colspan='7' class='TrOut'>"+
"<table width='100%' height='100%'border='0' cellpadding='0' cellspacing='0'><tr align='center'>/n"+
"<td width='20' style='font-family:/"webdings/";font-size:9pt' onclick='TableFunction().JumpToRun(/"b/")' onmouseover='this.style.color=/"#ff9900/"' onmouseout='this.style.color=/"/"'>3</td>/n"+
"<td id='YearTD' width='70' onmouseover='this.style.background=/"#cccccc/"' onmouseout='this.style.background=/"/"' onclick='TableFunction().WriteSelect(this,this.innerText.split(/" /")[0],/"y/",false)'>"+y+" 年</td>/n"+
"<td id='MonthTD' width='47' onmouseover='this.style.background=/"#cccccc/"' onmouseout='this.style.background=/"/"' onclick='TableFunction().WriteSelect(this,this.innerText.split(/" /")[0],/"m/",false)'>"+m+" 月</td>/n"+
"<td width='20' style='font-family:/"webdings/";font-size:9pt' onclick='TableFunction().JumpToRun(/"n/")' onmouseover='this.style.color=/"#ff9900/"' onmouseout='this.style.color=/"/"'>4</td></tr></table>/n"+
"</td></tr>/n"+
"<tr align='center'>/n";
for(var i=0;i<7;i++)
this.DStr+="<td class='TrOut'>"+DateArray[i]+"</td>/n";
this.DStr+="</tr>/n";
for(var i=0;i<6;i++){
this.DStr+="<tr align='center'>/n";
for(var j=0;j<7;j++){
var CS=new Date().getDate()==this.GetDateStr(y,m)[i*7+j]?"TdOver":"TdOut";
this.DStr+="<td id='TD' class='"+CS+"' cs='"+CS+"' onmouseover='this.className=/"TdOver/"' onmouseout='if(this.cs!=/"TdOver/")this.className=/"TdOut/"' onclick='TableFunction().AlertDay()'>"+this.GetDateStr(y,m)[i*7+j]+"</td>/n";
}
this.DStr+="</tr>/n";
}
this.DStr+="</tabe>";
return this.DStr;
}
this.WriteSelect=function(obj,values,action,getobj){
if(values=="")return;
if(getobj){
obj.innerHTML=values+(action=="y"?" 年":" 月");
this.RewriteTableStr(YearTD.innerText.split(" ")[0],MonthTD.innerText.split(" ")[0]);
return false;
}
var StrArray=[];
if(action=="y"){
for(var i=0;i<15;i++){
var year=values-7+i;
StrArray[i]="<option value='"+year+"' "+(values==year?"selected":"")+"> "+year+"年</option>/n";
}
obj.innerHTML="<select id='select1' style='width:67' onchange='TableFunction().WriteSelect(parentElement,this.value,/"y/",true)' onblur='YearTD.innerText=this.value+/" 年/"'>/n"+StrArray.join("")+"</select>";
select1.focus();
}
if(action=="m"){
for(var i=1;i<13;i++)
StrArray[i]="<option value='"+i+"' "+(i==values?"selected":"")+"> "+i+"月</option>/n";
obj.innerHTML="<select id='select2' style='width:47' onchange='TableFunction().WriteSelect(parentElement,this.value,/"m/",true)' onblur='MonthTD.innerText=this.value+/" 月/"'>/n"+StrArray.join("")+"</select>";
select2.focus();
}
}
this.RewriteTableStr=function(y,m){
var TArray=this.GetDateStr(y,m);
var len=TArray.length;
for(var i=0;i<len;i++){
TD[i].innerHTML=TArray[i];
TD[i].className="TdOut";
TD[i].cs="TdOut";
if(new Date().getYear()==y&&new Date().getMonth()+1==m&&new Date().getDate()==TArray[i]){
TD[i].className="TdOver";
TD[i].cs="TdOver";
}
}
}
this.JumpToRun=function(action){
var YearNO=YearTD.innerText.split(' ')[0];
var MonthNO=MonthTD.innerText.split(' ')[0];
if(action=="b"){
if(MonthNO=="1"){
MonthNO=13;
YearNO=YearNO-1;
}
MonthTD.innerText=MonthNO-1+" 月";
YearTD.innerText=YearNO+" 年";
this.RewriteTableStr(YearNO,MonthNO-1);
}
if(action=="n"){
if(MonthNO=="12"){
MonthNO=0;
YearNO=YearNO-(-1);
}
YearTD.innerText=YearNO+" 年";
MonthTD.innerText=MonthNO-(-1)+" 月";
this.RewriteTableStr(YearNO,MonthNO-(-1));
}
}
this.AlertDay=function(){
if(event.srcElement.innerText!=" ")
document.all('oText').value=YearTD.innerText.split(' ')[0]+"年"+MonthTD.innerText.split(' ')[0]+"月"+event.srcElement.innerText+"日";
}
return this;
}
document.all('oDiv').innerHTML=TableFunction().GetTableStr(new Date().getYear(),new Date().getMonth()+1);
</Script>
<span style="border:1px solid menu;">
<input type="text" id="oText" onpropertychange="document.all('oDiv').style.display='none';" style="border:0px;width:140px;height:20px;" readonly><input type="button" style="font:12pt webdings;border:0px;width:18px;height:20px;cursor:hand;" value="6" onclick="document.all('oDiv').style.display='inline';" onfocus="blur();"></span>
<div id="oDiv" style="display:none;"></div>
相关文章推荐
- js日历功能对象
- 很强大的Js日历代码,包括公历和农历的节日,不过界面设计一般
- js日历功能对象
- Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。
- 网络爬虫,用C#做一个网络爬虫demo,功能有保存网页、图片、js文件、等等其他的文件。有界面显示,有代码注释。
- html+css+js实现xp window界面及有关功能
- html+css+js实现xp window界面及有关功能
- JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
- JS简单实现移动端日历功能示例
- JS PC端时间日历插件 功能齐全 无依赖
- js实现界面向原生界面发消息并跳转功能
- jQuery插件-支持天干地支阴历阳历万年历节假日红字显示记事等功能的日历插件(1)
- 微软推出新款日历服务 功能和界面均有完善
- js界面刷新&Django使用Ajax实现页面无刷新评论回复功能
- js实现界面向原生界面发消息并跳转功能
- html+css+js实现xp window界面及有关功能
- 使用jquery.jqprint.js 实现的打印功能,IE9不能进行打印预览、火狐打印空白界面
- jQuery插件-支持天干地支阴历阳历万年历节假日红字显示记事等功能的日历插件(1)
- JS日历(带时间选择功能) kimsoft-jscalendar 增强版
- 功能强大界面漂亮的js日期控件 My97 DatePicker Ver 2.1