还有6600可用分,ASP做网站问题4:找www.ctrip.com一样的日历控件

stonepeter 2002-07-25 07:34:45
一直在参考www.ctrip.com的网站
-------------------------------------------------
如果这个帖子侵犯了您的权利请您发邮件告诉我stonepeter2002@msn.com
本贴子只作讨论技术使用
-------------------------------------------------
这一次也想要个一样的日历控件
他用
<IFRAME frameBorder=0 id=CalFrame marginHeight=0 marginWidth=0 noResize scrolling=no src="/Sharescript/Calendar/calendar.htm" style="DISPLAY: none; HEIGHT: 194px; POSITION: absolute; WIDTH: 148px; Z-INDEX: 100"></IFRAME>
放了一个日历在上面,但是日期是通过
<script language="JavaScript" src="/Sharescript/Calendar/date.js"></script>
中的函数来完成的
date.js中有一个引用rg[i].src=
可是那些图片w1d31.gif w4d31.gif等,我无论如何都down不下来,请各位高手想办法!
function LoadMonths(n){
var dt=new Date();
var m=dt.getMonth()+1;
var y=dt.getFullYear();
var rg=new Array(n);
for(i=0;i<n;i++){
rg[i]=document.createElement("IMG");
rg[i].src="/images/elements/calendar/w"+GetDOW2(1,m,y)+"d"+GetMonthCount(m,y)+".gif";
m++;
if(12<m){ m=1;y++;}
}
}
...全文
131 点赞 收藏 20
写回复
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonepeter 2002-07-25
freezwy(网络自由人) 正面回答了我的问题
meizz(梅花雨) 为我解决了问题
谢谢你们
也谢谢所有参与讨论的网友~
回复
stonepeter 2002-07-25
freezwy(网络自由人) 正面回答了我的问题
meizz(梅花雨) 为我解决了问题
谢谢你们
也谢谢所有参与讨论的网友~
回复
freezwy 2002-07-25
哈哈,这个没有什么难度,分析JS代码可以得出结果,我给你新开一个帖子,答案在里面,现在这里太慢,发不上。
回复
MeXP 2002-07-25
meizz(梅花雨),写得不错,我正好要用这样一个东西,谢谢,因为我重定义标记font,所以t和u就不会变成箭头了,是否可以这样稍作改动:-)
.rl { font-family: "Wingdings 3"; font-size: 12px}
<font color=#FFD700><span class=".rl">t</span></font>
回复
freezwy 2002-07-25
哈哈,这个没有什么难度,分析JS代码可以得出结果,他使用的是28张大图片,生成规则如下:
w0d28.gif
w0d29.gif
w0d30.gif
w0d31.gif
意思是,星期日天数是28的一张图片,29天的一张,30的一张,31的一张。
呵呵,其他的依次类推
如下:
w1d28.gif(星期一)
..
w1d31.gif
一直到
w6d28.gif(星期六
....
w6d31.gif
你可以自己推算出来,下载就直接
http://www.ctrip.com/Sharescript/Calendar/w0d28.gif依次类推,下载28次就下载完了,哈哈。
结贴了吧,呵呵,有什么问题发短信给我,我有比这个更漂亮的呢,呵呵。
回复
freezwy 2002-07-25
哈哈,这个没有什么难度,分析JS代码可以得出结果,他使用的是28张大图片,生成规则如下:
w0d28.gif
w0d29.gif
w0d30.gif
w0d31.gif
意思是,星期日天数是28的一张图片,29天的一张,30的一张,31的一张。
呵呵,其他的依次类推
如下:
w1d28.gif(星期一)
..
w1d31.gif
一直到
w6d28.gif(星期六
....
w6d31.gif
你可以自己推算出来,下载就直接
http://www.ctrip.com/Sharescript/Calendar/w0d28.gif依次类推,下载28次就下载完了,哈哈。
结贴了吧,呵呵,有什么问题发短信给我,我有比这个更漂亮的呢,呵呵。
回复
freezwy 2002-07-25
哈哈,这个没有什么难度,分析JS代码可以得出结果,他使用的是28张大图片,生成规则如下:
w0d28.gif
w0d29.gif
w0d30.gif
w0d31.gif
意思是,星期日天数是28的一张图片,29天的一张,30的一张,31的一张。
呵呵,其他的依次类推
如下:
w1d28.gif(星期一)
..
w1d31.gif
一直到
w6d28.gif(星期六
....
w6d31.gif
你可以自己推算出来,下载就直接
http://www.ctrip.com/Sharescript/Calendar/w0d28.gif依次类推,下载28次就下载完了,哈哈。
结贴了吧,呵呵,有什么问题发短信给我,我有比这个更漂亮的呢,呵呵。
回复
meizz 2002-07-25
meizz@hzcnc.com 多联系!
回复
stonepeter 2002-07-25
to:ruirui521(枫之舞) 因为不到什么支持ASP.NET的空间申请,所以只好用ASP了。你能为我找一个ASP.NET而且又不错的空间么?
-----------------------------------------------------------------

"点击别的地方的时候,选中的日期是0号,这样不妥吧"
我自己改了一下!看起来还不错~

function DayClick(n){ //点击显示框选取日期
var t1=TheYear;var t2=TheMonth;
if (t2<10){t2="0"+t2;}
if (n<10){n="0"+n;}
//--------added bye stonepeter---------
today=new date();
if (n==0){n=today.getDate();}
//-----------2002/07/25-----------------

if (n!=""){TObject.value=t1+""+t2+""+n;document.all.DayShow.style.display='none';}
else{TObject.value=""}
}
回复
meizz 2002-07-25
其实这段代码还是写得比较仓促,你所说的那些问题我也想过,但现在手头上的工作比较紧,也就没时间去完善它了,例如对NS的支持等等,以后修改好了,我会再次贴上这段代码的。
回复
meizz 2002-07-25
其实这段代码还是写得比较仓促,你所说的那些问题我也想过,但现在手头上的工作比较紧,也就没时间去完善它了,例如对NS的支持等等,以后修改好了,我会再次贴上这段代码的。
回复
stonepeter 2002-07-25
改了一下这个函数:)用于显示当前的日期
function SetD(yy,mm)
{
for (i=0;i<37;i++){wday[i]=""}; //将显示框的内容全部清空
var day1=1,firstday=new Date(yy,mm-1,1).getDay() //某月第一天的星期几

var today=new Date(); //今天!add by stonepeter.

for (i=firstday;day1<GetMonthCount(yy,mm)+1;i++){wday[i]=day1;day1++;};
for (i=0;i<37;i++)
{
var da = eval("document.all.D"+i) //书写新的一个月的日期星期排列
if (wday[i]!="")
{
da.innerHTML=wday[i];da.style.backgroundColor="#DAE3FC";da.style.cursor="hand"
//----------added by stonepeter------------
if(wday[i]==today.getDate())
da.style.backgroundColor="#DAE300";
//------------2002/07/25------------
}
else
{
da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"
}
}
}
回复
ruirui521 2002-07-25

赶紧换平台吧。
asp.net提供了日历控件,哪用自己写啊
回复
stonepeter 2002-07-25
呵呵,要求也太多了……~
如何显示当前的日期呢?好像在控件中没有做。
还有一个小问题,点击别的地方的时候,选中的日期是0号,这样不妥吧?
如果这些很容易改的话,教我一下~
回复
walkingpoison 2002-07-25
meizz(梅花雨):
有些建议:一个是最好能够点击别的地方关闭这个窗口。第二是如果能够直接对年进行上下操作就好了,因为一个月一个月翻实在太慢了。
回复
stonepeter 2002-07-25
唉,不早告诉我后面的这许多script都可以直接放在一个文件里面的~
回复
stonepeter 2002-07-25
果然很好,meizz(梅花雨) 您是高手,花了多少时间啊?
我昨天搞了一整天都没有成……一直在找那个图片……
等我把它加到自己的页面中了之后就给分~
回复
stonepeter 2002-07-25
我看到了,正在测试中~
回复
meizz 2002-07-25
它原来的那是用到了 iframe ,又加上图层图片,不太好,我重新改写了一个。^_^
回复
meizz 2002-07-25
头几天我刚好做好,给你啦!
<input type=text name=aaa>
<input type=button value=ok onclick="setday(this,aaa)">
<!-- 这个按钮你可以做成图片形式的。 -->

<script language=Javascript>
<!--
//========================================================================================================================
document.writeln ('<div id=DayShow style="position:absolute;width:142;height:166;top:68;left:1;z-index:99;display:none">');
document.writeln ('<table border=0 cellspacing=1 cellpadding=0 width=142 height=160 bgcolor=#808080 style="font-size:12px">');
document.writeln ('<tr><td width=142 height=22 bgcolor=#FFFFFF><table border=0 cellspacing=1 cellpadding=0 width=140 height=22>');
document.writeln ('<tr align=center><td width=25 align=left bgcolor=#808080 style="font-size:12px;cursor: hand" onclick=prev()>');
document.writeln ('<font color=#FFD700 face="Wingdings 3">t</font><span style="color: #FFD700"><b>▏</b></span>');
document.writeln ('</td><td width=90><span style="font-size:12px;cursor:default" id=thehead></span></td>');
document.writeln ('<td width=25 bgcolor=#808080 align=right style="font-size:12px;cursor: hand" onclick=next()>');
document.writeln ('<span style="color: #FFD700">▕</span><font color=#FFD700 face="Wingdings 3">u</font></td></tr>');
document.writeln ('</table></td></tr><tr><td width=142 height=18 bgcolor=#808080>');
document.writeln ('<table border=0 cellspacing=0 cellpadding=0 width=140 height=1 style="cursor:default">');
document.writeln ('<tr align=center><td style="font-size:12px;color:#FFFFFF">日</td>');
document.writeln ('<td style="font-size:12px;color:#FFFFFF">一</td><td style="font-size:12px;color:#FFFFFF">二</td>');
document.writeln ('<td style="font-size:12px;color:#FFFFFF">三</td><td style="font-size:12px;color:#FFFFFF">四</td>');
document.writeln ('<td style="font-size:12px;color:#FFFFFF">五</td><td style="font-size:12px;color:#FFFFFF">六</td></tr>');
document.writeln ('</table></td></tr><tr><td width=142 height=120><!--Author:F.R.Huang(meizz)-->');
document.writeln ('<table border=0 cellspacing=1 cellpadding=0 width=140 height=120 bgcolor=#FFFFFF>');
var n=0; for (j=0;j<5;j++){ document.writeln ('<tr align=center>');for (i=0;i<7;i++){
document.writeln ('<td width=20 height=20 id=D'+n+' style="font-size:12px" onclick=DayClick(this.innerText)></td>'); n++;}
document.writeln ('</tr>');}
document.writeln ('<tr align=center><td width=20 height=20 style="font-size:12px" id=D35 onclick=DayClick(this.innerText)></td>');
document.writeln ('<td width=20 height=20 style="font-size:12px" id=D36 onclick=DayClick(this.innerText)></td>');
document.writeln ('<td colspan=5 align=right><span onclick=closelayer() style="font-size:12px;cursor: hand"');
document.writeln ('><u>关闭小窗口</u></span> </td></tr></table></td></tr></table></div>');
//=============================================================================================

var TObject;
function setday(tt,obj){
var dads = document.all.DayShow.style;
var ttop = tt.offsetTop; //TT控件的定位点高
var thei = tt.clientHeight; //TT控件本身的高
var tleft = tt.offsetLeft; //TT控件的定位点宽
var ttyp = tt.type; //TT控件的类型
while (tt = tt.offsetParent){ttop+=tt.offsetTop; tleft+=tt.offsetLeft;}
dads.top = (ttyp=="image")? ttop+thei : ttop+thei+6;
dads.left = tleft; dads.display = '';
TObject = obj; event.returnValue=false;
}
var MonHead=new Array(12);MonHead[0]=31;MonHead[1]=28;MonHead[2]=31;MonHead[3]=30;MonHead[4]=31;MonHead[5]=30;
MonHead[6]=31;MonHead[7]=31;MonHead[8]=30;MonHead[9]=31;MonHead[10]=30;MonHead[11]=31;
//定义阳历中每个月的最大天数
var TheYear=new Date().getFullYear(); //定义年的变量的初始值
var TheMonth=new Date().getMonth()+1; //定义月的变量的初始值
var wday=new Array(37);
document.all.thehead.innerText=TheYear+" 年 "+TheMonth+" 月" //往 thehead 中写入当前的年与月
function closelayer(){document.all.DayShow.style.display="none";} //这个层的关闭
function cennalclose(){if(window.event.keyCode==27)document.all.DayShow.style.display="none";}
function IsPinYear(year){ if(0==year%4&&((year%100!=0)||(year%400==0))) return true;else return false;} //判断是否闰平年
function GetMonthCount(year,month){var c=MonHead[month-1];if((month==2)&&IsPinYear(year)) c++;return c;} //闰年二月为29日
function GetDOW(day,month,year){var dt=new Date(year,month-1,day).getDay()/7; return dt;} //求某天的星期几
function prev(){if(TheMonth>1){TheMonth--}else{TheYear--;TheMonth=12;}
document.all.thehead.innerText=TheYear+" 年 "+TheMonth+" 月";SetD(TheYear,TheMonth); //往前翻日期
}
function next(){if(TheMonth==12){TheYear++;TheMonth=1}else{TheMonth++}
document.all.thehead.innerText=TheYear+" 年 "+TheMonth+" 月"; SetD(TheYear,TheMonth); //往后翻日期
}
function SetD(yy,mm){
for (i=0;i<37;i++){wday[i]=""}; //将显示框的内容全部清空
var day1=1,firstday=new Date(yy,mm-1,1).getDay() //某月第一天的星期几
for (i=firstday;day1<GetMonthCount(yy,mm)+1;i++){wday[i]=day1;day1++;};
for (i=0;i<37;i++){ var da = eval("document.all.D"+i) //书写新的一个月的日期星期排列
if (wday[i]!=""){da.innerHTML=wday[i];da.style.backgroundColor="#DAE3FC";da.style.cursor="hand"}
else{da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"}}
}
function DayClick(n){ //点击显示框选取日期
var t1=TheYear;var t2=TheMonth;
if (t2<10){t2="0"+t2;}
if (n<10){n="0"+n;}
if (n!=""){TObject.value=t1+""+t2+""+n;document.all.DayShow.style.display='none';}
else{TObject.value=""}
}
SetD(TheYear,TheMonth)
document.onkeydown=cennalclose
// -->
</script>
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告