JS日历 推荐

两年前写过一个日历,可是兼容性不好. 这次重新写了一次. 
兼容多种浏览器 
了解了不少东东,特别是对于W3C标准化. 
如 FF和IE 对box模型的理解不同 
box.style{width:100;border 1px;} 
ie理解 为 box.width = 100 
ff 理解 为 box.width = 100 + 1*2 = 102 
可以使用这种方法使两种浏览器都可以正常浏览 
box.style{width:100!important; width /**/:120px;border 1px;} 
注意 width(空格)/**/
下载此文件


代码如下:

/***********************

* 创建对象  var c = new Calendar("c"); document.write(c); 
* 调用方法 c.show(arg1,arg2,arg3) 
* 参数1: 文本输入框(必填). 如 onfocus="c.show(this)"; 
* 参数2: 按钮或其它可用单击事件的HTML元素(如果使用按钮方式则必填). 
     如 onclick="c.show(this,c.getObjById(*))" *=文本输入框名称 
* 参数3: 如果没有文本框没有值则使用该值初始化日历(选填). 
     如 onfocus="c.show(this,'2006-01-01')

* 注: 参数顺序不分先后. MSIE6/Opera8/FireFox1.5 下测试通过

***如果您使用本日历控件 请保留该信息 谢谢! *****  
* http://2lin.net 
* Email:caoailin@gmail.com 
* QQ:38062022 
* Creation date: 2006-11-22 
************************************/

function Calendar(objName)  

this.style = {

borderColor    : "#909eff", //边框颜色 
  headerBackColor   : "#909EFF", //表头背景颜色 
  headerFontColor   : "#ffffff", //表头字体颜色 
  bodyBarBackColor  : "#f4f4f4", //日历标题背景色 
  bodyBarFontColor  : "#000000", //日历标题字体色 
  bodyBackColor   : "#ffffff", //日历背景色 
  bodyFontColor      : "#000000", //日历字体色 
  bodyHolidayFontColor   : "#ff0000", //假日字体色 
  watermarkColor   : "#d4d4d4", //背景水印色 
  moreDayColor       : "#cccccc"

};

this.showMoreDay = false; //是否显示上月和下月的日期

this.Obj = objName; 
this.date = null;

this.mouseOffset = null; 
this.dateInput = null; 
this.timer = null;

};

Calendar.prototype.toString = function() 
{  
  var str = this.getStyle(); 
  str += '<div Author="alin" class="calendar" style="display:none;" onselectstart="return false" oncontextmenu="return false" id="Calendar">\n'; 
  str += '<div Author="alin" class="cdrWatermark" id="cdrWatermark"></div><div id="cdrBody" style="position:absolute;left:0px;top:0px;z-index:2;width:140px;">'; 
  str += this.getHeader(); 
  str += this.getBody();  
  str += '</div><div Author="alin" id="cdrMenu" style="position:absolute;left:0px;top:0px;z-index:3;display:none;" onmouseover="' + this.Obj + '.showMenu(null);" onmouseout="' + this.Obj + '.hideMenu();"></div></div>'; 
  return str; 
};

Calendar.prototype.getStyle = function() 

  var str = '<style type="text/css">\n'; 
str += '.calendar{position:absolute;width:140px!important;width /**/:142px;height:184px!important;height /**/:174px;background-color:'+this.style.bodyBackColor+';border:1px solid ' + this.style.borderColor + ';left:0px;top:0px;z-index:9999;}\n'; 
str += '.cdrHeader{background-color:'+ this.style.headerBackColor +';width:140px;height:22px;font-size:12px;color:'+this.style.headerFontColor+';}\n'; 
str += '.cdrWatermark{position:absolute;left:0px;top:55px;width:140px;font-family: Arial Black;font-size:50px;color:'+this.style.watermarkColor+';z-index:1;text-align:center;}\n'; 
str += '.cdrBodyBar{background-color:' + this.style.bodyBarBackColor + ';font-size:12px;color:' + this.style.bodyBarFontColor + ';width:140px;height:20px;}\n'; 
str += '.cdrBody{width:140px;height:122px!important; height /**/:110px;font-size:12px;cursor:pointer;color:' + this.style.bodyFontColor + ';}\n'; 
str += '.dayOver{height:16px;padding:0px;border:1px solid black;background-color:#f4f4f4;}\n'; 
str += '.dayOut{padding:1px;border:none;height:16px;}\n'; 
  str += '.menuOver{background-color:'+this.style.headerBackColor+';color:'+this.style.headerFontColor+';font-size:12px;}\n'; 
str += '.headerOver{border:1px solid black;background-color:#f4f4f4;color:black;cursor:default;}\n'; 
str += '.cdrMenu{font-size:12px;border:1px solid #000000;background-color:#ffffff;cursor:default;width:100%}\n'; 
str += 'html>body #Calendar{width:142px;174px;}'; 
str += '</style>\n'; 
return str;

};

Calendar.prototype.getHeader = function() 

  var str = '<table Author="alin" class="cdrHeader" cellSpacing="2" cellPadding="0"><tr Author="alin" align="center">\n'; 
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="previousYear" title="上一年份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeYear(false);"><<</td>\n'; 
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="previousMonth" title="上一月份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeMonth(false);"><</td>\n'; 
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" id="currentYear" style="width:50px;" onclick="' + this.Obj + '.showMenu(true);" onmouseout="' + this.Obj + '.hideMenu();this.className=\'\';">0</td>\n'; 
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" id="currentMonth" onclick="' + this.Obj + '.showMenu(false);" onmouseout="' + this.Obj + '.hideMenu();this.className=\'\';">0</td>\n'; 
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="nextMonth" title="下一月份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeMonth(true);">></td>\n'; 
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="nextYear" title="下一年份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeYear(true);">>></td></tr>\n'; 
str += '</table>\n'; 
return str; 
};

Calendar.prototype.getBody = function() 

  var n = 0; 
  var str = this.getBodyBar(); 
  str += '<table Author="alin" class="cdrBody" cellSpacing="2" cellPadding="0">\n';  
  for(i = 0; i < 6; i++) 
{   
  str += '<tr Author="alin" align="center">'; 
for(j = 0; j < 7; j++) 

str += '<td Author="alin" class="dayOut" id="cdrDay'+(n++)+'" width="13%"></td>\n'; 

str += '</tr>'; 

  str += '</table>\n'; 
  str += '<table Author="alin" class="cdrBodyBar" cellSpacing="2" cellPadding="0"><tr align="center" Author="alin"><td Author="alin" style="cursor:pointer;" onclick="'+this.Obj+'.getToday();">今天:'+new Date().toFormatString("yyyy年mm月dd日")+'</td></tr></table>\n'; 
  return str; 
};

Calendar.prototype.getBodyBar = function() 

  var str = '<table Author="alin_bar" id="cdrBodyBar" class="cdrBodyBar" style="cursor:move;" cellSpacing="2" cellPadding="0"><tr Author="alin_bar" align="center">\n'; 
  var day = new Array('日','一','二','三','四','五','六'); 
  for(i = 0; i < 7; i++) 
  { 
   str += '<td Author="alin_bar">' + day[i] + '</td>\n';   
  } 
  str += '</tr></table>'; 
  return str;  
}

Calendar.prototype.getYearMenu = function(year) 
{

var str = '<table Author="alin" cellSpacing="0" class="cdrMenu" cellPadding="0">\n'; 
  for(i = 0; i < 10; i++) 
{   
  var _year = year + i; 
var _date = new Date(_year,this.date.getMonth(),this.date.getDate());

str += '<tr Author="alin" align="center"><td Author="alin" width="13%" height="16" '; 
if(this.date.getFullYear() != _year) 

str += 'onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" '; 

else 

  str += 'class="menuOver"'; 

str += 'onclick="' + this.Obj + '.bindDate(\'' + _date.toFormatString("-") + '\')">' + _year + '年</td>\n'; 
str += '</tr>'; 
}

str += '<tr Author="alin" align="center"><td Author="alin"><table Author="alin" style="font-size:12px;width:100%;" cellSpacing="0" cellPadding="0">\n'; 
  str += '<tr Author="alin" align="center"><td Author="alin" onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" onclick="'+this.Obj+'.getYearMenu('+ (year - 10) + ')"><<</td>\n'; 
  str += '<td Author="alin" onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" onclick="'+this.Obj+'.getYearMenu('+ (year + 10) +')">>></td><tr>\n'; 
  str += '</table></td></tr>\n'; 
  str += '</table>';

var _menu = getObjById("cdrMenu"); 
_menu.innerHTML = str;

};

Calendar.prototype.getMonthMenu = function() 
{

var str = '<table Author="alin" cellSpacing="0" class="cdrMenu" cellPadding="0">\n'; 
  for(i = 1; i <= 12; i++) 
{  
var _date = new Date(this.date.getFullYear(),i-1,this.date.getDate());

str += '</tr><tr Author="alin" align="center"><td Author="alin" height="16" '; 
if(this.date.getMonth() + 1 != i) 

str += 'onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" '; 

else 

  str += 'class="menuOver"'; 

str += 'onclick="' + this.Obj + '.bindDate(\'' + _date.toFormatString("-") + '\')">'+i+'月</td></tr>\n'; 

  str += '</table>';

var _menu = getObjById("cdrMenu"); 
_menu.innerHTML = str;  
};

Calendar.prototype.show = function() 

  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; 
inputObj = _date; 
targetObj = _evObj

if(!_date){alert("传入参数错误!"); return;}

this.dateInput = _date;

_date = _date.value;

if(_date == "" && _initValue) _date = _initValue;

this.bindDate(_date);

var _target = getPosition(_evObj);  
  var _obj = getObjById("Calendar"); 
  _obj.style.display = "";

_obj.style.left = _target.x + 'px'; 
  if((document.body.clientHeight - (_target.y + _evObj.clientHeight)) >= _obj.clientHeight) 
  {     
   _obj.style.top = (_target.y + _evObj.clientHeight) + 'px'; 

else 
{   
    _obj.style.top = (_target.y - _obj.clientHeight) + 'px'; 
}

};

Calendar.prototype.hide = function() 

  var obj = 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 _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(); 
var _day = 1;

var _startDay = new Date(_year,_month,1).getDay(); 
var _previYear = _month == 0 ? _year - 1 : _year; 
var _previMonth = _month == 0 ? 11 : _month - 1; 
var _previDay = _monthDays[_previMonth]; 
if (_previMonth == 1) _previDay =((_previYear%4==0)&&(_previYear%100!=0)||(_previYear%400==0))?29:28; 
_previDay -= _startDay - 1; 
var _nextDay = 1;

_monthDays[1] = ((_year%4==0)&&(_year%100!=0)||(_year%400==0))?29:28;

for(i = 0; i < 40; i++) 

  var _dayElement = 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); 
_dayElement.style.color = "";

if(i < _startDay) 

  //获取上一个月的日期 
if(this.showMoreDay) 

  var _previDate = new Date(_year,_month - 1,_previDay); 
  _dayElement.innerHTML = _previDay; 
  _dayElement.title = _previDate.toFormatString("yyyy年mm月dd日"); 
    _dayElement.value = _previDate.toFormatString("-"); 
  _dayElement.style.color = this.style.moreDayColor;

_previDay++;

}else 

  _dayElement.innerHTML = ""; 
    _dayElement.title = ""; 
}


else if(_day > _monthDays[_month]) 

  //获取下个月的日期 
  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;

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

(0)

相关推荐

  • 轻量级的原生js日历插件calendar.js使用指南

    使用说明: 需要引入插件calendar.js/calendar.min.js 须要引入calendar.css 样式表,可以自定义自己想要的皮肤 本日历插件支持cmd模块化 如下调用: 复制代码 代码如下: xvDate({ 'targetId':'date1',//时间写入对象的id 'triggerId':['date1','dateBtn1'],//触发事件的对象id 'alignId':'datesWrap1',//日历对齐对象 'format':'-',//时间格式 默认'YYYY-

  • js css+html实现简单的日历

    web页面中很多地方都会用到日历显示,选择等,本文用html.css.javascript实现简单的日历.完成以后的效果与页面左侧的效果差不多,可以切换上个月.下个月.也可以根据实际情况进行扩展. html html部分比较简单,声明一个div,具体的html用javascript生成.整体内容大概是这样的: <!doctype html> <html> <head> <meta charset='utf-8'> <link rel='styleshe

  • 纯js简单日历实现代码

    复制代码 代码如下: <!doctype html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body,ul,li,h2,p { margin:0px; pa

  • JS实现一个简单的日历

    主要分为三个部分,1:获取li元素 2:如何填写对应的日期 3:如何获取点击li元素的事件. 1:通过节点间关系的属性children 获取li元素(两个for循坏遍历): 2:在遍历填写日期时,在第一行判断在当月的第一天在星期几,然后从第一天开始填写,直到大于当月的天数就暂停填写,并开始填写下个月的日期.第一行上个月的日期显示  : 上月天数显示开始值 = 计算上个月的天数 - 这个月开始的第一天在星期几的值 -1,然后在第一行上月天数显示开始值自加. 3:利用JS的事件冒泡获取li的inne

  • 纯JS实现简单的日历

    本文实例为大家分享了纯JS实现日历的具体代码,供大家参考,具体内容如下 封装代码: (function(cmf){ cmf.showDcalendar=function(){ var fnname=cmf.fn var id="cmfrili2" var yy=f23timeselecta1.value,mm=f23timeselecta2.value-1 var newdara=new Date() var dd=newdara.getDate(); var d=new Date(y

  • js日历控件(可精确到分钟)

    .menu_iframe{position:absolute; visibility:inherit; top:0px; left:0px; width:170px; z-index:-1; filter: Alpha(Opacity=0);} .cal_table{ border:#333333 solid 1px; border-collapse:collapse; background:#ffffff; font-size:12px} .cal_table td{ border:1px #

  • js+html制作简单日历的方法

    新手一枚,不会写什么高大上的博文,一些平时做的小练习,献丑 代码: <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> * {margin: 0;padding: 0} #calendar {width: 210px;margin: 100px auto;overflow: hidden;bo

  • JS学习之一个简易的日历控件

    这个日历控件类似于园子用的日历,如下图: 这种日历控件实现起来不难,下面简单分析下我的思路: 首先,是该控件的可配置项: 复制代码 代码如下: ... settings: { firstDayOfWeek: 1, baseClass: "calendar", curDayClass: "curDay", prevMonthCellClass: "prevMonth", nextMonthCellClass: "nextMonth&quo

  • php+javascript的日历控件

    复制代码 代码如下: <html> <head> <title>js calendar</title> <script language="javascript"> /* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo * ----------------------------------------------------------- * * The DHT

  • JS日历 推荐

    两年前写过一个日历,可是兼容性不好. 这次重新写了一次.  兼容多种浏览器  了解了不少东东,特别是对于W3C标准化.  如 FF和IE 对box模型的理解不同  box.style{width:100;border 1px;}  ie理解 为 box.width = 100  ff 理解 为 box.width = 100 + 1*2 = 102  可以使用这种方法使两种浏览器都可以正常浏览  box.style{width:100!important; width /**/:120px;bo

  • 推荐一个小巧的JS日历

    脚本的核心就是DateAdd函数,点击下面的演示看看效果: 查看演示 调用方法很简单, 第一步:在页面顶部包含calenderJS.js文件: <script src="path/to/calenderJS.js"></script> 点击下载这个js文件 第二步:给你的输入框增加onfocus事件属性: <input type="text" onfocus="HS_setDate(this)"> HS_set

  • sso跨域写cookie的一段js脚本(推荐)

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script> var setcookitarray = ""; setcookitarray = "[\"http://passport.a.com/main/setCookie.do?domain=\",\"http://passport.

  • 点击按钮出现60秒倒计时的简单js代码(推荐)

    点击按钮出现60秒倒计时的简单js代码(推荐) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta h

  • JS 日历控件(蓝色)

    超漂亮的JS日历控件 *{ font:12px; letter-spacing:0px; } body{ background-color:#E5E9F2; overflow:hidden; margin:0; border:0px; } #titleYear{ text-align:center; padding-top:3px; width:120px; height:20px; border:solid #E5E9F2; border-width:0px 1px 1px 0px; back

  • js日历功能对象

    需求产生问题:本来想在网上找个js代码,可是发现要么太复杂,要么不好控制,要么兼容性不好...... 问题分析: 发现不是优秀的就是最好的.... 适合自己的就是最好的. 问题解决: 决定自己写一个日历 功能. 代码呈现: 日历主程序 复制代码 代码如下: var calendar={ STR:function(){with(this.data)return ""+Y+"年,"+M+"月,"+D+"号,星期"+WN[W];},

  • 百度用到的Js日历 大家可以看看

    而且日历功能很强大,带有节日.农历等,运行看效果就明白了,相信不会让您失望的. 百度的Js日历,值得一看 body,td,.p1,.p2,.i{font-family:arial} body{margin:6px 0 0 0;background-color:#fff;color:#000;} table{border:0} #cal{width:434px;border:1px solid #c3d9ff;font-size:12px;margin:8px 0 0 15px} #cal #to

  • js日历相关函数使用详解

    本文实例为大家分享了js日历相关函数的具体代码,供大家参考,具体内容如下 1.获取某年某月第一天是周几 getMonthStartDay(year, month, index) {     let monthFirstDay = Number(new Date(year, month, 1).getDay())     return monthFirstDay } this.getMonthStartDay(2021, 06, 1) 2.获取某年某月某天是一年中第几周 getWeek(year,

  • 兼容FireFox 的 js 日历 支持时间的获取

    复制代码 代码如下: var cal; var isFocus=false; //是否为焦点 var pickMode ={ "second":1, "minute":2, "hour":3, "day":4, "month":5, "year":6 }; var topY=0,leftX=0; //自定义定位偏移量 2007-02-11 由 寒羽枫添加 //选择日期 → 由 寒羽枫 2

随机推荐