相當於delphi的日曆控制元件 (轉)
<!--Start-->
var YearStr,MonthStr,DayStr,NowDayStr;
var WeekStr,week,week_one;
var WeekArr = new Array("星期日", "星期一", "星期二", "星期三","星期四", "星期五", "星期六");
var dt = new Date();
var showtype;
var caleX = 0;
var caleY = 0;
YearStr = dt.getYear();
MonthStr = dt.getMonth() + 1;
NowDayStr = DayStr = dt.getDate();
week = dt.getDay();
WeekStr = WeekArr[week];
document.write("
function initCalendar(){
var CaleHTML="";
CaleHTML += "
"; | "+ YearStr +"年"+ MonthStr +"月 | "|||||||||
"; CaleHTML += "
CaleHTML += " | ||||||||||
今天是:"+ dt.getYear() +"-"+ (dt.getMonth() + 1) +"-"+ dt.getDate() +" |
return CaleHTML;
}
function bodyCalendar(){
var ResultStr = "
var tempStr = "" + MonthStr + "/1/" + YearStr;
var d = new Date(tempStr);
week_one = d.getDay();
for(var i=0;i
}
var bYear = YearStr/4;
var maxDay;
switch(MonthStr){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
maxDay = 31;
break;
case 2:
if(bYear==0)
maxDay = 28;
else
maxDay = 29;
break;
default:
maxDay = 30;
break;
}
var k;
var bday;
for(var i=0;i
if((i+1) == DayStr)
bday = "border: #006432 1px solid;";
if((i+1) == NowDayStr)
= "border: #ff0000 1px solid;";
else
bday = "border: #ffffff 1px solid;";
BRStr = i+week_one+1;
if(BRStr>=7 && BRStr%7==0){
ResultStr += "
k=0;
}
else{
ResultStr += "
k+=1;
}
}
for(var i=0;i<7-k;i++){
ResultStr += "
}
ResultStr += "
return ResultStr;
}
function prevMonth(){
MonthStr -= 1;
if(MonthStr == 0){
MonthStr = 12;
YearStr -= 1;
}
idCalendar.innerHTML = initCalendar();
}
function nextMonth(){
MonthStr += 1;
if(MonthStr > 12){
MonthStr = 1;
YearStr += 1;
}
idCalendar.innerHTML = initCalendar();
}
function TDMove(){
var obj = window.event.srcElement;
obj.style.setAttribute("border", "#005AB5 1px solid");
}
function TDOut(){
var obj = event.srcElement;
if(parseInt(obj.innerText) == DayStr)
obj.style.setAttribute("border","#006432 1px solid");
if(parseInt(obj.innerText) == NowDayStr)
("border","#ff0000 1px solid");
else
obj.style.setAttribute("border","#ffffff 1px solid");
}
var tobj;
function showCalendar(stype){
showtype = stype;
var obj = event.srcElement;
var pobj = obj.parentElement;
tobj = pobj.childNodes(0);
v = tobj.value;
if(v != ""){
p= v.indexOf("-");
if(pos != -1 && pos == 4){
YearStr = parseInt(v.substring(0,pos));
v = v.substring(pos+1,v.length);
}
pos = v.indexOf("-");
if(pos != -1){
MonthStr = parseInt(v.substring(0,pos));
v = v.substring(pos+1,v.length);
}
if(v.length>0)
DayStr = parseInt(v);
}
var objParent = obj.offsetParent;
var left = obj.offsetLeft;
var top = obj.offsetTop;
while(objParent.tagName.toUpperCase() != "BODY"){
left += objParent.offsetLeft;
top += objParent.offsetTop;
objParent = objParent.offsetParent;
}
left += obj.offsetWidth;
top += obj.offsetHeight;
idCalendar.style.top = top+1;
idCalendar.style.left = left-260;
caleX = left - 260;
caleY = top + 1;
idCalendar.innerHTML = initCalendar();
idCalendar.style.display="";
hElement("");
/*var left = event.clientX;
var top = event.clientY;
idCalendar.style.top = top+5;
idCalendar.style.left = left-250;
idCalendar.innerHTML = initCalendar();
idCalendar.style.display="";*/
}
function TDClick(){
DayStr = event.srcElement.innerText;
if(showtype=="day"){
tobj.value = YearStr + "-" + MonthStr + "-" + DayStr;
}
else{
tobj.value = YearStr + "-" + MonthStr;
}
hideCalendar();
}
function getCaleToSec(){
var dt;
if(showtype=="day")
dt = new Date(MonthStr+"/"+DayStr+"/"+YearStr);
else
dt = new Date(MonthStr+"/1/"+YearStr);
var s = dt.getTime();
return s/1000;
}
function hideCalendar(){
idCalendar.style.display = "none";
showElement("SELECT");
}
function C_MouseUp(){
if(idCalendar == null)
return;
var top = parseInt(idCalendar.style.top);
var left = parseInt(idCalendar.style.left);
var wi = idCalendar.offsetWidth;
var he = idCalendar.offsetHeight;
var x = event.clientX;
var y = event.clientY;
var x1 = left + wi;
var y1 = top + he;
if(x>x1||x
showElement("SELECT");
}
}
function hideElement(elmID){
for (i = 0; i < document.all.tags(elmID).length; i++){
obj = document.all.tags(elmID)[i];
if (! obj || ! obj.offsetParent)
continue;
objLeft = obj.offsetLeft;
objTop = obj.offsetTop;
objParent = obj.offsetParent;
while (objParent.tagName.toUpperCase() != "BODY")
{
objLeft += objParent.offsetLeft;
objTop += objParent.offsetTop;
objParent = objParent.offsetParent;
}
if(caleX > (objLeft + obj.offsetWidth) || objLeft > (caleX + idCalendar.offsetWidth))
;
else if(objTop > (caleY + idCalendar.offsetHeight))
;
else if(caleY > (objTop + obj.offsetHeight))
;
else
obj.style.visibility = "hidden";
}
}
function showElement(elmID){
for (i = 0; i < document.all.tags(elmID).length; i++){
obj = document.all.tags(elmID)[i];
if (! obj || ! obj.offsetParent)
continue;
obj.style.visibility = "";
}
}
document.onmouseup = C_MouseUp;
<!--End-->
//DTD HTML 4.0 Transitional//EN">
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993850/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- delphi 控制元件 LssCalendar V2.0 (支援農曆的月曆控制元件)控制元件
- 用Delphi處理公曆到農曆的轉換 (轉)
- 日曆控制元件(Calendar)控制元件
- JS編寫日曆控制元件(支援單日曆 雙日曆 甚至多日曆等)JS控制元件
- jsp做的日曆控制元件JS控制元件
- 帶農曆日曆的DatePicker控制元件!Xamarin控制元件開發小記控制元件
- 一款好看的日曆控制元件控制元件
- 基於PHP的日曆程式PHP
- 對Delphi控制元件的一點改良 (轉)控制元件
- HTML5自定義日曆控制元件HTML控制元件
- 日曆控制元件 My97DatePicker控制元件
- 關於日曆程式的截圖
- 改良控制元件-Delphi自帶控制元件Bug的消除 (轉)控制元件
- 解決Raize日曆控制元件顯示的問題AI控制元件
- 對Delphi控制元件的一點改良(二) (轉)控制元件
- delphi 控制元件的拿來主義(一) (轉)控制元件
- Delphi控制元件的拿來主義(二) (轉)控制元件
- 對Delphi控制元件的一點改良(三) (轉)控制元件
- Delphi控制元件的拿來主義(三) (轉)控制元件
- 開源一個ReactNative日曆控制元件React控制元件
- iOS 自定義日曆(日期選擇)控制元件iOS控制元件
- 帶你開發一個日曆控制元件控制元件
- JS日曆控制元件優化(增加時分秒)JS控制元件優化
- Kalendae:JavaScript日期選擇和日曆控制元件JavaScript控制元件
- 在Delphi中使用IP控制元件 (轉)控制元件
- 在delphi中使用flash控制元件 (轉)控制元件
- 關於日曆程式原始碼原始碼
- Oracle和JDE日曆轉換Oracle
- 日曆函式單元 (轉)函式
- 在Delphi中編寫控制元件的基本方法 (轉)控制元件
- 於Delphi的Case述句中使用字串當作判別變數 (轉)字串變數
- Java 周曆日曆Java
- 在Delphi中編寫控制元件的基本方法(1) (轉)控制元件
- 9 款樣式華麗的 jQuery 日期選擇和日曆控制元件jQuery控制元件
- Android自定義日曆控制元件的實現過程詳解Android控制元件
- 陽曆到陰曆的轉換 (轉)
- 原來的控制元件delphi7裡何處尋? (轉)控制元件
- 點選文字框下拉彈出日曆控制元件程式碼控制元件