代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html>
<head>
<title>calender select</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type='text/css'>
body {
font-family: "Lucida sans unicode", sans-serif;
font-size: 12px;
margin: 0;
padding: 0;
height: 100%;
}
#basis {
display: inline;
position: relative;
}
#calender {
position: absolute;
top: 30px;
left: 0;
width: 220px;
background-color: #fff;
border: 3px solid #ccc;
padding: 10px;
z-index: 10;
}
#control {
text-align: center;
margin: 0 0 5px 0;
}
#control select {
font-family: "Lucida sans unicode", sans-serif;
font-size: 11px;
margin: 0 5px;
vertical-align: middle;
}
#calender .controlPlus {
padding: 0 5px;
text-decoration: none;
color: #333;
}
#calender table {
empty-cells: show;
width: 100%;
font-size: 11px;
table-layout: fixed;
}
#calender .weekdays td {
text-align: right;
padding: 1px 5px 1px 1px;
color: #333;
}
#calender .week td {
text-align: right;
cursor: pointer;
border: 1px solid #fff;
padding: 1px 4px 1px 0;
}
#calender .week .today {
background-color: #ccf;
border-color: #ccf;
}
#calender .week .holiday {
font-weight: bold;
}
#calender .week .hoverEle {
border-color: #666;
background-color: #99f;
color: #000;
}
</style>
<script type="text/javascript">
var allMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var allNameOfWeekDays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"];
var allNameOfMonths = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
var newDate = new Date();
var yearZero = newDate.getFullYear();
var monthZero = newDate.getMonth();
var day = newDate.getDate();
var currentDay = 0,
currentDayZero = 0;
var month = monthZero,
year = yearZero;
var yearMin = 2000,
yearMax = 2010;
var target = '';
var hoverEle = false;
function setTarget(e) {
if (e) return e.target;
if (event) return event.srcElement;
}
function newElement(type, attrs, content, toNode) {
var ele = document.createElement(type);
if (attrs) {
for (var i = 0; i < attrs.length; i++) {
eval('ele.' + attrs[i][0] + (attrs[i][2] ? '=\u0027' : '=') + attrs[i][1] + (attrs[i][2] ? '\u0027' : ''));
}
}
if (content) ele.appendChild(document.createTextNode(content));
if (toNode) toNode.appendChild(ele);
return ele;
}
function setMonth(ele) {
month = parseInt(ele.value);
calender()
}
function setYear(ele) {
year = parseInt(ele.value);
calender()
}
function setValue(ele) {
if (ele.parentNode.className == 'week' && ele.firstChild) {
var dayOut = ele.firstChild.nodeValue;
if (dayOut < 10) dayOut = '0' + dayOut;
var monthOut = month + 1;
if (monthOut < 10) monthOut = '0' + monthOut;
target.value = dayOut + '.' + monthOut + '.' + year;
removeCalender();
}
}
function removeCalender() {
var parentEle = document.getElementById("calender");
while (parentEle.firstChild) parentEle.removeChild(parentEle.firstChild);
document.getElementById('basis').parentNode.removeChild(document.getElementById('basis'));
}
function calender() {
var parentEle = document.getElementById("calender");
parentEle.onmouseover = function(e) {
var ele = setTarget(e);
if (ele.parentNode.className == 'week' && ele.firstChild && ele != hoverEle) {
if (hoverEle) hoverEle.className = hoverEle.className.replace(/hoverEle ?/, '');
hoverEle = ele;
ele.className = 'hoverEle ' + ele.className;
} else {
if (hoverEle) {
hoverEle.className = hoverEle.className.replace(/hoverEle ?/, '');
hoverEle = false;
}
}
}
while (parentEle.firstChild) parentEle.removeChild(parentEle.firstChild);
function check() {
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) allMonth[1] = 29;
else allMonth[1] = 28;
}
function addClass(name) {
if (!currentClass) {
currentClass = name
} else {
currentClass += ' ' + name
}
};
if (month < 0) {
month += 12;
year -= 1
}
if (month > 11) {
month -= 12;
year += 1
}
if (year == yearMax - 1) yearMax += 1;
if (year == yearMin) yearMin -= 1;
check();
var control = newElement('p', [
['id', 'control', 1]
], false, parentEle);
var controlPlus = newElement('a', [
['href', 'javascript:month--;calender()', 1],
['className', 'controlPlus', 1]
], '<', control);
var select = newElement('select', [
['onchange', function() {
setMonth(this)
}]
], false, control);
for (var i = 0; i < allNameOfMonths.length; i++) newElement('option', [
['value', i, 1]
], allNameOfMonths[i], select);
select.selectedIndex = month;
select = newElement('select', [
['onchange', function() {
setYear(this)
}]
], false, control);
for (var i = yearMin; i < yearMax; i++) newElement('option', [
['value', i, 1]
], i, select);
select.selectedIndex = year - yearMin;
controlPlus = newElement('a', [
['href', 'javascript:month++;calender()', 1],
['className', 'controlPlus', 1]
], '>', control);
check();
currentDay = 1 - new Date(year, month, 1).getDay();
if (currentDay > 0) currentDay -= 7;
currentDayZero = currentDay;
var newMonth = newElement('table', [
['cellSpacing', 0, 1],
['onclick', function(e) {
setValue(setTarget(e))
}]
], false, parentEle);
var newMonthBody = newElement('tbody', false, false, newMonth);
var tr = newElement('tr', [
['className', 'head', 1]
], false, newMonthBody);
tr = newElement('tr', [
['className', 'weekdays', 1]
], false, newMonthBody);
for (i = 0; i < 7; i++) td = newElement('td', false, allNameOfWeekDays[i], tr);
tr = newElement('tr', [
['className', 'week', 1]
], false, newMonthBody);
for (i = 0; i < allMonth[month] - currentDayZero; i++) {
var currentClass = false;
currentDay++;
if (currentDay == day && month == monthZero && year == yearZero) addClass('today');
if (currentDay <= 0) {
if (currentDayZero != -7) td = newElement('td', false, false, tr);
} else {
if ((currentDay - currentDayZero) % 7 == 0) addClass('holiday');
td = newElement('td', (!currentClass ? false : [
['className', currentClass, 1]
]), currentDay, tr);
if ((currentDay - currentDayZero) % 7 == 0) tr = newElement('tr', [
['className', 'week', 1]
], false, newMonthBody);
}
if (i == allMonth[month] - currentDayZero - 1) {
i++;
while (i % 7 != 0) {
i++;
td = newElement('td', false, false, tr)
};
}
}
}
function showCalender(ele) {
if (document.getElementById('basis')) {
removeCalender()
} else {
target = document.getElementById(ele.id.replace(/for_/, ''));
var basis = ele.parentNode.insertBefore(document.createElement('div'), ele);
basis.id = 'basis';
newElement('div', [
['id', 'calender', 1]
], false, basis);
calender();
}
}
</script>
</head>
<body>
<div><input type='text' id='date1' /><input type='button' id='for_date1' value='date' onclick='showCalender(this)' /></div>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。