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

📄 calendar.js

📁 java阿里巴巴代码
💻 JS
📖 第 1 页 / 共 2 页
字号:
		   //获取下个月的日期
		   if(this.showMoreDay)
			{
			  var _nextDate = new Date(_year,_month + 1,_nextDay);
			  _dayElement.innerHTML = _nextDay;
			  _dayElement.title = _nextDate.toFormatString("yyyy年mm月dd日");
		      _dayElement.value = _nextDate.toFormatString("-");
			  _dayElement.style.color = this.style.moreDayColor;	
		   
		      _nextDay++;			   
			}else
			{
			   _dayElement.innerHTML = "";
		       _dayElement.title = "";
			}
		}
		else if(i >= new Date(_year,_month,1).getDay() && _day <= _monthDays[_month])
		{
           //获取本月日期
		   _dayElement.innerHTML = _day;
		   
		   if(_day == _date.getDate())
		   {
		      this.onMouseOver(_dayElement);
			  _dayElement.onmouseover = Function("");   
		      _dayElement.onmouseout = Function(""); 					  			    
		   }
		        
		    
		   if(this.isHoliday(_year,_month,_day))
		   {
		      _dayElement.style.color = this.style.bodyHolidayFontColor;			  
		   }
		   var _curDate = new Date(_year, _month, _day);
		   _dayElement.title =  _curDate.toFormatString("yyyy年mm月dd日");
		   _dayElement.value = _curDate.toFormatString("-");
		   		   
		   _day++;
		   
		}
		else
		{
		   _dayElement.innerHTML = "";
		   _dayElement.title = "";
		}	
	      
	}
	
	var _menu = getObjById("cdrMenu");
	_menu.style.display = "none";	
	
};


Calendar.prototype.bindHeader = function()
{
   var _curYear = getObjById("currentYear");
   var _curMonth = getObjById("currentMonth");
   var _watermark = getObjById("cdrWatermark");

   _curYear.innerHTML = this.date.toFormatString("yyyy年");
   _curMonth.innerHTML =  this.date.toFormatString("mm月");
   _watermark.innerHTML = this.date.getFullYear();     

};	

Calendar.prototype.getToday = function()
{
   var _date = new Date();
   this.bindDate(_date.toFormatString("-"));
};	

Calendar.prototype.isHoliday = function(year,month,date)
{
   var _date = new Date(year,month,date);
   return (_date.getDay() == 6 || _date.getDay() == 0);
};

Calendar.prototype.onMouseOver = function(obj)
{
   obj.className = "dayOver";
};


Calendar.prototype.onMouseOut = function(obj)
{
   obj.className = "dayOut";
};	

Calendar.prototype.onClick = function(obj)
{  
  if(obj.innerHTML != "")  this.dateInput.value = obj.value;
  this.hide();
};

Calendar.prototype.onChangeYear = function(isnext)
{
   var _year = this.date.getFullYear();
   var _month = this.date.getMonth() + 1;
   var _date = this.date.getDate();
      
   if(_year > 999 && _year <10000)
   {
        if(isnext){_year++;}else{ _year --;}
   }
   else
   {
     alert("年份超出范围(1000-9999)!");
   }
   this.bindDate(_year + '-' + _month + '-' + _date);
};

Calendar.prototype.onChangeMonth = function(isnext)
{
   var _year = this.date.getFullYear();
   var _month = this.date.getMonth() + 1;
   var _date = this.date.getDate();
   
   if(isnext){ _month ++;} else {_month--;}
   
   if(_year > 999 && _year <10000)
   { 
        if(_month < 1) {_month = 12; _year--;}
		if(_month > 12) {_month = 1; _year++;}
   }
   else
   {
     alert("年份超出范围(1000-9999)!");
   }  
   
   this.bindDate(_year + '-' + _month + '-' + _date);
};

Calendar.prototype.showMenu = function(isyear)
{
  var _menu = getObjById("cdrMenu");
  
  if(isyear != null)
  {
    
	var _obj = (isyear)? getObjById("currentYear") : getObjById("currentMonth");
	
	if(isyear)
	{
	   this.getYearMenu(this.date.getFullYear() - 5);	   
	}
	 else
	{
	   this.getMonthMenu();	   
	}
	
	_menu.style.top = (_obj.offsetTop + _obj.offsetHeight) + 'px';
	_menu.style.left = _obj.offsetLeft + 'px';	
	_menu.style.width = _obj.offsetWidth + 'px';
	
   }
	
	if (this.timer != null) clearTimeout(this.timer);
	
	_menu.style.display="";
	
}

Calendar.prototype.hideMenu = function()
{
    var _obj = getObjById("cdrMenu");
    this.timer = window.setTimeout(function(){_obj.style.display='none';},500);	
}

Number.prototype.NaN0 = function()
{
    return isNaN(this) ? 0 : this;
}

Date.prototype.toFormatString = function(fs)
{
   if(fs.length == 1)
   { 
     return this.getFullYear() + fs + (this.getMonth() + 1) + fs + this.getDate(); 
   }
   fs = fs.replace("yyyy",this.getFullYear());
   fs = fs.replace("mm",(this.getMonth() + 1));
   fs = fs.replace("dd",this.getDate());
   return fs;
}

/******************************************公用方法及变量********************************************************/
var inputObj = null; //输入对象
var targetObj = null;	//单击目标对象
var dragObj = null; //拖动目标对象
var mouseOffset = null; //拖动目标的位置

//获取对象
function getObjById(obj)
{
   if(document.getElementById)
   {
     return document.getElementById(obj);
   }
   else
   {
     alert("浏览器不支持!");
   }
}

//获取鼠标位置
function mouseCoords(ev)
{
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

//获取目标的绝对位置
function getPosition(e)
{
	var left = 0;
	var top  = 0;
	while (e.offsetParent){
		left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e     = e.offsetParent;
	}

	left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);

	return {x:left, y:top};
}
//获取鼠标的偏移值
function getMouseOffset(target, ev)
{
	ev = ev || window.event;
	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

//关闭日历
function closeCalendar(evt){
	
	evt = evt || window.event; 
	var _target= evt.target || evt.srcElement; 
	
	if(!_target.getAttribute("Author") &&  _target != inputObj && _target != targetObj)
	 {
	   getObjById("Calendar").style.display = "none"; 	  
	 }  
}
//拖动日历开始
function dragStart(evt){

    evt = evt || window.event;	
	var _target= evt.target || evt.srcElement;
			 
	if(_target.getAttribute("Author") == "alin_bar") 
	{	   
	   dragObj = getObjById("Calendar");	   
	   mouseOffset = getMouseOffset(dragObj, evt);	 
	   
	}   
}
//拖动日历中
function drag(evt)
{
    evt =  evt || window.event;	
	if(dragObj)
	{		  
	  var mousePos = mouseCoords(evt); 
	  dragObj.style.left = (mousePos.x - mouseOffset.x) + 'px';
	  dragObj.style.top  = (mousePos.y - mouseOffset.y) + 'px';	  
	}
}
//拖动结束
function dragEnd(evt)
{
   dragObj = null;    
}

/**********************************End 公用方法**********************************************/


document.onclick = closeCalendar;

document.onmousedown = dragStart;

document.onmousemove = drag;

document.onmouseup = dragEnd;


/*****************************************************结束************************************************************/

⌨️ 快捷键说明

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