视频1
视频21
视频41
视频61
视频文章1
视频文章21
视频文章41
视频文章61
推荐1
推荐3
推荐5
推荐7
推荐9
推荐11
推荐13
推荐15
推荐17
推荐19
推荐21
推荐23
推荐25
推荐27
推荐29
推荐31
推荐33
推荐35
推荐37
推荐39
推荐41
推荐43
推荐45
推荐47
推荐49
关键词1
关键词101
关键词201
关键词301
关键词401
关键词501
关键词601
关键词701
关键词801
关键词901
关键词1001
关键词1101
关键词1201
关键词1301
关键词1401
关键词1501
关键词1601
关键词1701
关键词1801
关键词1901
视频扩展1
视频扩展6
视频扩展11
视频扩展16
文章1
文章201
文章401
文章601
文章801
文章1001
资讯1
资讯501
资讯1001
资讯1501
标签1
标签501
标签1001
关键词1
关键词501
关键词1001
关键词1501
专题2001
全部频道
首页
科技
教育
生活
旅游
时尚
美容
美食
健康
体育
游戏
汽车
元宇宙
家电
财经
综合
宠物
一个日历,兼容多种浏览器_时间日期
2020-11-27 20:33:46
责编:小采
点击下载本文
文档为doc格式
无标题文档
/******************************************************************************************* * 创建对象 var c = new Calendar("c"); document.write(c); * 调用方法 c.show(arg1,arg2,arg3) * 参数1: 文本输入框(必填). 如 onfocus="c.show(this)"; * 参数2: 按钮或其它可用单击事件的HTML元素(如果使用按钮方式则必填). 如 onclick="c.show(this,document.all.*)" *=文本输入框名称 * 参数3: 如果没有文本框没有值则使用该值初始化日历(选填). 如 onfocus="c.show(this,'2006-01-01') * 注: 参数顺序不分先后. MSIE6/Opera8/FireFox1.5 下测试通过 ************************如果您使用本日历控件 请保留该信息 谢谢! *************************** * http://2lin.net * Email:caoailin@gmail.com * QQ:38062022 * Creation date: 2006-10-29 *********************************************************************************************/ function Calendar(objName) { this.style = { borderColor : "#909eff", //边框颜色 headerBackColor : "#909EFF", //表头背景颜色 headerFontColor : "#ffffff", //表头字体颜色 bodyBarBackColor : "#f4f4f4", //日历标题背景色 bodyBarFontColor : "#000000", //日历标题字体色 bodyBackColor : "#ffffff", //日历背景色 bodyFontColor : "#000000", //日历字体色 bodyHolidayFontColor : "#ff0000", //假日字体色 watermarkColor : "#d4d4d4" //背景水印色 }; this.Obj = objName; this.date = null; this.mouseOffset = null; this.dateInput = null; this.timer = null; this.drag = false; }; Calendar.prototype.toString = function() { var str = this.getStyle(); str += '\n'; str += ''; str += this.getHeader(); str += this.getBody(); str += ''; return str; }; Calendar.prototype.getStyle = function() { var str = '\n'; return str; }; Calendar.prototype.getHeader = function() { var str = '
\n'; str += '
<<
\n'; str += '
<
\n'; str += '
0
\n'; str += '
0
\n'; str += '
>
\n'; str += '
>>
\n'; str += '
\n'; return str; }; Calendar.prototype.getBody = function() { var n = 0; var str = '
\n'; str += '
日
一
二
三
四
五
六
\n'; str += '
\n'; for(i = 0; i < 6; i++) { str += '
'; for(j = 0; j < 7; j++) { str += '
\n'; } str += '
'; } str += '
\n'; str += '
今天
\n'; return str; }; Calendar.prototype.getYearMenu = function(year) { var str = '
\n'; for(i = 0; i < 10; i++) { var _year = year + i; var _date = new Date(_year,this.date.getMonth(),this.date.getDate()); str += '
' + _year + '年
\n'; str += '
'; } str += '
\n'; str += '
<<
\n'; str += '
>>
\n'; str += '
\n'; str += '
'; var _menu = this.getObjById("cdrMenu"); _menu.innerHTML = str; }; Calendar.prototype.getMonthMenu = function() { var str = '
\n'; for(i = 1; i <= 12; i++) { var _date = new Date(this.date.getFullYear(),i-1,this.date.getDate()); str += '
'+i+'月
\n'; } str += '
'; var _menu = this.getObjById("cdrMenu"); _menu.innerHTML = str; }; Calendar.prototype.show = function(arg1, arg2 , arg3) { if (arguments.length > 3 || arguments.length == 0) { alert("对不起!传入参数不对!" ); return; } var _date = null; var _evObj = null; var _initValue = null for(i = 0; i < arguments.length; i++) { if(typeof(arguments[i]) == "object" && arguments[i].type == "text") {_date = arguments[i];} else if(typeof(arguments[i]) == "object") {_evObj = arguments[i];} else if(typeof(arguments[i]) == "string") {_initValue = arguments[i];} } _evObj = _evObj || _date; if(!_date){alert("传入参数错误!"); return;} this.dateInput = _date; _date = _date.value; if(_date == "" && _initValue) _date = _initValue; this.bindDate(_date); var _target = this.getPosition(_evObj); var _obj = this.getObjById("Calendar"); _obj.style.display = ""; _obj.style.left = _target.x; if((document.body.clientHeight - (_target.y + _evObj.clientHeight)) >= _obj.clientHeight) { _obj.style.top = _target.y + _evObj.clientHeight; } else { _obj.style.top = _target.y - _obj.clientHeight; } }; Calendar.prototype.hide = function() { var obj = this.getObjById("Calendar"); obj.style.display = "none"; }; Calendar.prototype.bindDate = function(date) { var _monthDays = new Array(31,30,31,30,31,30,31,31,30,31,30,31); var _day = 1; var _arr = date.split('-'); var _date = new Date(_arr[0],_arr[1]-1,_arr[2]); if(isNaN(_date)) _date = new Date(); this.date = _date; this.bindHeader(); var _year = _date.getFullYear(); var _month = _date.getMonth(); _monthDays[1] = ((_year%4==0)&&(_year%100!=0)||(_year%400==0))?29:28; for(i = 0; i < 42; i++) { var _dayElement = this.getObjById("cdrDay" + i); _dayElement.onmouseover = Function(this.Obj + ".onMouseOver(this)"); _dayElement.onmouseout = Function(this.Obj + ".onMouseOut(this)"); _dayElement.onclick = Function(this.Obj + ".onClick(this)"); this.onMouseOut(_dayElement); 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; } _dayElement.title = _year + '年' + (_month + 1) + '月' + _day + '日'; _dayElement.value = _year + '-' + (_month + 1) + '-' + _day; _day++; } else { _dayElement.innerHTML = ""; _dayElement.title = ""; } } var _menu = this.getObjById("cdrMenu"); _menu.style.display = "none"; }; Calendar.prototype.bindHeader = function() { var _curYear = this.getObjById("currentYear"); var _curMonth = this.getObjById("currentMonth"); var _watermark = this.getObjById("cdrWatermark"); _curYear.innerHTML = this.date.getFullYear() + "年"; _curMonth.innerHTML = (this.date.getMonth() + 1) + "月"; _watermark.innerHTML = this.date.getFullYear(); }; Calendar.prototype.getObjById = function(obj) { if(document.getElementById) { return document.getElementById(obj); } else { alert("浏览器不支持!"); } }; 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 = ""; }; 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.onMouseMove = function (evt) { evt = evt || window.event; if(this.drag && evt.button == 1) { var obj = this.getObjById("Calendar"); var mousePos = this.mouseCoords(evt); obj.style.left = mousePos.x - this.mouseOffset.x; obj.style.top = mousePos.y - this.mouseOffset.y; } } Calendar.prototype.onDragStart = function (evt) { evt = evt || window.event; var obj = this.getObjById("Calendar"); this.mouseOffset = this.getMouseOffset(obj,evt); this.drag = true; } Calendar.prototype.onDragEnd = function (evt) { this.drag = false; } Calendar.prototype.mouseCoords = function(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 }; } Calendar.prototype.getPosition = function(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}; } Calendar.prototype.getMouseOffset = function(target, ev) { ev = ev || window.event; var docPos = this.getPosition(target); var mousePos = this.mouseCoords(ev); return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y}; } Calendar.prototype.showMenu = function(isyear) { var _menu = this.getObjById("cdrMenu"); if(isyear != null) { var _obj = (isyear)? this.getObjById("currentYear") : this.getObjById("currentMonth"); if(isyear) { this.getYearMenu(this.date.getFullYear() - 5); } else { this.getMonthMenu(); } _menu.style.top = _obj.offsetTop + _obj.offsetHeight; _menu.style.left = _obj.offsetLeft; _menu.style.width = _obj.offsetWidth; } if (this.timer != null) clearTimeout(this.timer); _menu.style.display=""; } Calendar.prototype.hideMenu = function() { var _obj = this.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) { return this.getFullYear() + fs + (this.getMonth() + 1) + fs + this.getDate(); } /*****************************************************结束************************************************************/ script>
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
下载本文
显示全文
专题
动视 51dongshi.net 版权所有
Copyright © 2019-2025