⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendar.js

📁 ARCGIS程序,可以实现查、缩放等功能
💻 JS
📖 第 1 页 / 共 3 页
字号:
	var t = target.offsetTop,  h = target.clientHeight, l = target.offsetLeft, p = target.type;
	var o = WebCalendar.calendar.style;

	while (target = target.offsetParent)
	  {t += target.offsetTop; l += target.offsetLeft;}

	var cw = parseInt(o.width), ch = parseInt(o.height);
    var dw = document.body.clientWidth, dl = document.body.scrollLeft, dt = document.body.scrollTop, dh = document.body.clientHeight;

	if (dh + dt - t - h >= ch) 
	  o.top = (p=="image")? t + h : t + h + 6;
    else 
	  o.top  = (t - dt < ch) ? ((p=="image")? t + h : t + h + 6) : (t - ch);
    if (dw + dl - l >= cw) 
	  o.left = l; 
	else 
	  o.left = (dw >= cw) ? dw - cw + dl : dl;
}

function funMonthSelect() //月份的下拉框
{
    var m = isNaN(parseInt(WebCalendar.thisMonth, 10)) ? new Date().getMonth() + 1 : parseInt(WebCalendar.thisMonth);
    var e = WebCalendar.iframe.document.forms[0].tmpMonthSelect;
    for (var i=1; i<13; i++) e.options.add(new Option(i, i));// +"月"
    e.style.display = ""; e.value = m; e.focus(); window.status = e.style.top;//??
}

function funYearSelect() //年份的下拉框
{
    var n = WebCalendar.yearFall;
    var e = WebCalendar.iframe.document.forms[0].tmpYearSelect;
    var y = isNaN(parseInt(WebCalendar.thisYear, 10)) ? new Date().getFullYear() : parseInt(WebCalendar.thisYear);
        y = (y <= 1000)? 1000 : ((y >= 9999)? 9999 : y);
    var min = (y - n >= 1000) ? y - n : 1000;
    var max = (y + n <= 9999) ? y + n : 9999;
        min = (max == 9999) ? max-n*2 : min;
        max = (min == 1000) ? min+n*2 : max;
    for (var i=min; i<=max; i++) e.options.add(new Option(i, i));// +"年"
    e.style.display = ""; e.value = y; e.focus();
}

function funHourSelect() //小时的滚动按钮
{    
	if(WebCalendar.timeShow) 
	{ 
		var h = isNaN(parseInt(WebCalendar.thisHour, 10)) ? new Date().getHours() : parseInt(WebCalendar.thisHour);
		var e = WebCalendar.iframe.document.forms[0].tmpHourSelect;
		e.style.display = ""; e.value = h; e.focus(); 
	}
}

function funMinuteSelect() //分钟的滚动按钮
{
	if(WebCalendar.timeShow) 
	{
		var mi = isNaN(parseInt(WebCalendar.thisMinute, 10)) ? new Date().getMinutes() : parseInt(WebCalendar.thisMinute);
		var e = WebCalendar.iframe.document.forms[0].tmpMinuteSelect;
		e.style.display = ""; e.value = mi; e.focus();
	}
}

function funSecondSelect() //秒的滚动按钮
{
	if(WebCalendar.timeShow) 
	{
		var s = isNaN(parseInt(WebCalendar.thisSecond, 10)) ? new Date().getSeconds : parseInt(WebCalendar.thisSecond);
		var e = WebCalendar.iframe.document.forms[0].tmpSecondSelect;
		e.style.display = ""; e.value = s; e.focus();
	}
}

function prevM()  //往前翻月份
{
    WebCalendar.thisDay = 1;
    if (WebCalendar.thisMonth==1)
    {
        WebCalendar.thisYear--;
        WebCalendar.thisMonth=13;
    }
    WebCalendar.thisMonth--; 
	writeCalendar();
}

function nextM()  //往后翻月份
{
    WebCalendar.thisDay = 1;
    if (WebCalendar.thisMonth==12)
    {
        WebCalendar.thisYear++;
        WebCalendar.thisMonth=0;
    }
    WebCalendar.thisMonth++; 
	writeCalendar();
}

//往前翻 Year
function prevY()
{WebCalendar.thisDay = 1; WebCalendar.thisYear--; writeCalendar();}

//往后翻 Year
function nextY()
{WebCalendar.thisDay = 1; WebCalendar.thisYear++; writeCalendar();}

//隐藏下拉列表
function hiddenSelect(e)
{for(var i=e.options.length; i>-1; i--)e.options.remove(i); e.style.display="none";}

//隐藏微调按钮
function hiddenTextarea(e)
{e.style.display="none";}

//获取对象
function getObjectById(id)
{ 
  if(document.all) 
    return(eval("document.all."+ id)); 
  return(eval(id));
}

//隐藏日历
function hiddenCalendar()
{
  getObjectById("eosCalendarLayer").style.display = "none";
  WebCalendar.isOpen = false;
}

//日期自动补零程序
function appendZero(n)
{return(("00"+ n).substr(("00"+ n).length-2));}

//覆盖字符串的去空格函数
function String.prototype.trim()
{return this.replace(/(^\s*)|(\s*$)/g,"");}

//鼠标移到某天时的事件
function dayMouseOver()
{
    this.className = "over";
    this.style.backgroundColor = WebCalendar.darkColor;
    if(WebCalendar.day[this.id.substr(8)].split("/")[1] == WebCalendar.thisMonth)
    this.style.color = WebCalendar.lightColor;
	this.style.cursor = "hand";
}

//鼠标移出某天时的事件
function dayMouseOut()
{
    this.className = "out"; 
	var d = WebCalendar.day[this.id.substr(8)], a = d.split("/");
    this.style.removeAttribute('backgroundColor');
    if(a[1] == WebCalendar.thisMonth && d != WebCalendar.today)
    {
        if(WebCalendar.dateStyle && a[0] == parseInt(WebCalendar.dateStyle[4], 10))
        this.style.color = WebCalendar.lightColor;
        this.style.color = WebCalendar.wordColor;
    }
}

//对日历显示的数据的处理程序
function writeCalendar() 
{
    var y = WebCalendar.thisYear;
    var m = WebCalendar.thisMonth; 
    var d = WebCalendar.thisDay;
	var h = WebCalendar.thisHour;
	var mi = WebCalendar.thisMinute;
	var s = WebCalendar.thisSecond;
    WebCalendar.daysMonth[1] = (0==y%4 && (y%100!=0 || y%400==0)) ? 29 : 28;
    if (!(parseInt(y, 10)<=9999 && parseInt(y, 10) >= 1000 && parseInt(m, 10)>=0 && parseInt(m, 10)<=12 && parseInt(d, 10)>=0
		 && parseInt(h, 10)<=23 && parseInt(h, 10)>=0 && parseInt(mi, 10)<=59 && parseInt(mi, 10)>=0
		 && parseInt(s, 10)<=59 && parseInt(s, 10)>=0))
	{
		//alert("对不起,你输入了错误的日期!");
        WebCalendar.thisYear     = new Date().getFullYear();
        WebCalendar.thisMonth    = new Date().getMonth()+ 1;
        WebCalendar.thisDay		 = new Date().getDate(); 
		WebCalendar.thisHour	 = new Date().getHours(); 
		WebCalendar.thisMinute   = new Date().getMinutes(); 
		WebCalendar.thisSecond   = new Date().getSeconds(); 
	}
    WebCalendar.iframe.meizzYearHead.innerText  = y;
    WebCalendar.iframe.meizzYearMonth.innerText = m;
	if(WebCalendar.timeShow)
	{
		WebCalendar.iframe.hourTD.innerText = h +" 时";
		WebCalendar.iframe.hourTD.title = '点击此处选择时';
		WebCalendar.iframe.hourTD.onclick = funHourSelect;
		WebCalendar.iframe.minuteTD.innerText = mi +" 分";
		WebCalendar.iframe.minuteTD.title='点击此处选择分';
		WebCalendar.iframe.minuteTD.onclick = funMinuteSelect;
		WebCalendar.iframe.secondTD.innerText = s +" 秒";
		WebCalendar.iframe.secondTD.title='点击此处选择秒';
		WebCalendar.iframe.secondTD.onclick = funSecondSelect;
	}
	WebCalendar.daysMonth[1] = (0==y%4 && (y%100!=0 || y%400==0)) ? 29 : 28; //闰年二月为29天
    var w = new Date(y, m-1, 1).getDay();	//星期值0-6 -> 周日-周一
    var prevDays = m==1  ? WebCalendar.daysMonth[11] : WebCalendar.daysMonth[m-2];	//当前月上一个月天数
	//这三个 for 循环为日历赋数据源(数组 WebCalendar.day)格式是 d/m/yyyy
	for(var i=(w-1); i>=0; i--)	//补齐上个月日期
    {
        WebCalendar.day[i] = prevDays +"/"+ (parseInt(m, 10)-1) +"/"+ y;
        if(m==1) WebCalendar.day[i] = prevDays +"/"+ 12 +"/"+ (parseInt(y, 10)-1);
        prevDays--;
    }
    for(var i=1; i<=WebCalendar.daysMonth[m-1]; i++) WebCalendar.day[i+w-1] = i +"/"+ m +"/"+ y;	//本月日期
    for(var i=1; i<42-w-WebCalendar.daysMonth[m-1]+1; i++)	//下月日期
    {
        WebCalendar.day[WebCalendar.daysMonth[m-1]+w-1+i] = i +"/"+ (parseInt(m, 10)+1) +"/"+ y;
        if(m==12) WebCalendar.day[WebCalendar.daysMonth[m-1]+w-1+i] = i +"/"+ 1 +"/"+ (parseInt(y, 10)+1);
    }
    for(var i=0; i<42; i++)    //这个循环是根据源数组写到日历里显示
    {
        var a = WebCalendar.day[i].split("/");
        WebCalendar.dayObj[i].innerText    = a[0];
        WebCalendar.dayObj[i].title        = a[2] +"-"+ appendZero(a[1]) +"-"+ appendZero(a[0]);
        WebCalendar.dayObj[i].bgColor      = WebCalendar.dayBgColor;
        WebCalendar.dayObj[i].style.color  = WebCalendar.wordColor;
        if ((i<10 && parseInt(WebCalendar.day[i], 10)>20) || (i>27 && parseInt(WebCalendar.day[i], 10)<12))
            WebCalendar.dayObj[i].style.color = WebCalendar.wordDark;
        if (WebCalendar.inputDate==WebCalendar.day[i])    //设置输入框里的日期在日历上的颜色
        {
			WebCalendar.dayObj[i].bgColor = WebCalendar.inputColor; 
			WebCalendar.dayObj[i].style.color = WebCalendar.wordColor;
			WebCalendar.dayObj[i].style.fontWeight = "bold";
		}
        if (WebCalendar.day[i] == WebCalendar.today)      //设置今天在日历上反映出来的颜色
        {
			WebCalendar.dayObj[i].bgColor = WebCalendar.todayColor; 
			WebCalendar.dayObj[i].style.color = WebCalendar.wordColor;
			WebCalendar.dayObj[i].style.fontWeight = "bold";
		}
    }
}

/*
* 根据日期格式等返回用户选定的日期
* 目前支持:yyyyMMdd,yyyy/MM/dd,yyyy-MM-dd,yyyy年MM月dd日
* yyyyMMddHHmmss,yyyy/MM/dd HH:mm:ss,yyyy-MM-dd HH:mm:ss,yyyy年MM月dd日HH时mm分ss秒
*/
function returnDate() 
{
    if(WebCalendar.objExport)
    {
        var returnValue;
		var a = WebCalendar.day[this.id.substr(8)].split("/");
		
		if(WebCalendar.format == "yyyyMMdd" || WebCalendar.format == "yyyyMMddHHmmss")
		//eos标准格式
		{			
			returnValue = a[2] + appendZero(a[1]) + appendZero(a[0]);
			if(WebCalendar.timeShow == true)
			{
				var h = WebCalendar.thisHour, m = WebCalendar.thisMinute, s = WebCalendar.thisSecond;
				returnValue += appendZero(h) + appendZero(m) + appendZero(s);
			}
		}
		else if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(WebCalendar.format) || 
			/^(y{4})(-|\/)(M{1,2})(-|\/)(d{1,2}) HH:mm:ss$/.test(WebCalendar.format))
		//"-","/"间隔格式
		{
			var d;
			if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(WebCalendar.format))
				d = WebCalendar.format.match(/^(\w{4})(-|\/)(\w{1,2})\2(\w{1,2})$/);
			else
				d = WebCalendar.format.match(/^(\w{4})(-|\/)(\w{1,2})\2(\w{1,2}) HH:mm:ss$/);
			if(d==null)
			{
			  alert("你设定的日期输出格式不对!\r\n\r\n请重新定义 WebCalendar.format !");
			  return false;
			}
			var flag = d[3].length==2 || d[4].length==2; //判断返回的日期格式是否要补零
			returnValue = flag ? a[2] +d[2]+ appendZero(a[1]) +d[2]+ appendZero(a[0]) : a[2] +d[2]+ a[1] +d[2]+ a[0];			
			if(WebCalendar.timeShow == true)
			{
				var h = WebCalendar.thisHour, m = WebCalendar.thisMinute, s = WebCalendar.thisSecond;
				returnValue += flag ? " "+ appendZero(h) +":"+ appendZero(m) +":"+ appendZero(s) : " "+  h  +":"+ m +":"+ s;
			}			
		}
		else if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(WebCalendar.format) ||
			/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)(HH时mm分ss秒)$/.test(WebCalendar.format))
		//中文格式
		{
			var d;
			if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(WebCalendar.format))
				d = WebCalendar.format.match(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/);
			else
				d = WebCalendar.format.match(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)(HH时mm分ss秒)$/);
			if(d==null)
			{
			  alert("你设定的日期输出格式不对!\r\n\r\n请重新定义 WebCalendar.format !");
			  return false;
			}
			var flag = d[3].length==2 || d[5].length==2; //判断返回的日期格式是否要补零
			returnValue = flag ? a[2] + "年" + appendZero(a[1]) + "月" + appendZero(a[0]) + "日" : a[2] + "年" + a[1] + "月" + a[0] + "日";
			if(WebCalendar.timeShow == true)
			{
				var h = WebCalendar.thisHour, m = WebCalendar.thisMinute, s = WebCalendar.thisSecond;
				returnValue += flag ? appendZero(h) +"时"+ appendZero(m) + "分" + appendZero(s) + "秒" : h +"时"+ m + "分" + s + "秒";
			}
		}
		else
		//默认的返回格式
		{	
			if(/^(y{4})(-)(M{1,2})\2(d{1,2}) HH:mm:ss$/.test(WebCalendar.format))	
			{
				var h = WebCalendar.thisHour, m = WebCalendar.thisMinute, s = WebCalendar.thisSecond;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -