> 웹 프론트엔드 > JS 튜토리얼 > 간단한 DatePicker 달력_시간 및 날짜가 자바스크립트로 구현됨

간단한 DatePicker 달력_시간 및 날짜가 자바스크립트로 구현됨

WBOY
풀어 주다: 2016-05-16 18:10:39
원래의
1126명이 탐색했습니다.

jQ의 UI에도 있고, YUI의 위젯에도 있습니다. 게다가 포장도 탄탄해서 호환성이나 활용도가 아주 좋습니다. 그래서 코드가 개선된다고 해서 코드의 양이 자연스럽게 줄어들지는 않습니다. 기본 라이브러리를 기반으로 구축하더라도 코드는 수백 줄에 이릅니다.
실제로 사용해보면 이렇게 완전한 기능이 필요하지 않을 수도 있습니다. 우리가 사용할 만큼 간단하고 간단한 것을 작성해 봅시다.
게다가 예전에 몇몇 친구들이 제가 올리는 것들이 오락용일 뿐이고 실용성이 거의 없다고 지적한 적이 있는데, 이번에는 시작으로 여기고 앞으로는 뭔가 올려보겠습니다. 때때로 약간의 실용성을 가지고.


[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]

소스 코드는 다음과 같습니다. 코드는 다음과 같습니다.

var DatePicker = 함수() {
var $ = 함수(i) {return document.getElementById(i)},
addEvent = 함수(o, e, f) {o.addEventListener ? o.addEventListener(e, f, false) : o.attachEvent('on' e, function(){f.call(o)})},
getPos = function (el) {
for (var pos = {x:0, y:0}; el = el.offsetParent) {
pos.x = el.offsetLeft;
pos.y = el.offsetTop;
}
반품 POS;
}

var init = function(n, config) {
window[n] = this;
Date.prototype._fd = function () {var d = new Date(this); d.setDate(1); d.getDay()}를 반환합니다.
Date.prototype._fc = 함수() {var d1 = 새 날짜(this), d2 = 새 날짜(this); d1.setDate(1); d2.setDate(1); d2.setMonth(d2.getMonth() 1); 반환(d2-d1)/86400000;};
this.n = n;
this.config = 구성;
this.D = 새 날짜;
this.el = $(config.inputId);
this.el.title = this.n '날짜 선택기';

this.update();
this.bind();
}
init.prototype = {

update : function (y, m) {
var con = [], week = ['Su','Mo','Tu' ,'우리','목','Fr','사'], D = this.D, _this = this;
fn = 함수 (a, b) {return ''},
_html = '';
y && D.setYear(D.getFullYear() y);
m && D.setMonth(D.getMonth() m);
var year = D.getFullYear(), 월 = D.getMonth() 1, 날짜 = D.getDate();
for (var i=0; i');
for (var i=0; ifor (var i=0; i' (i 1) '');
var toend = con.length%7;
if (toend != 0) for (var i=0; i_html = '
' fn("-1, null", "<<") fn("null, -1", "<") '' fn("null, 1", ">") fn("1, null", ">>") '';
for (var i=0; i!!this.box ? this.box.innerHTML = _html : this.createBox(_html);
},
fillInput : 함수(y, m, d) {
var s = this.config.seprator || '/';
this.el.value = ysmsd;
this.box.style.display = '없음';
},
show : function () {
var s = this.box.style, is = this.mask.style;
s['left'] = is['left'] = getPos(this.el).x 'px';
s['top'] = is['top'] = getPos(this.el).y this.el.offsetHeight 'px';
s['display'] = is['display'] = '차단';
is['width'] = this.box.offsetWidth - 2 'px';
is['height'] = this.box.offsetHeight - 2 'px';
},
hide : function () {
this.box.style.display = 'none';
this.mask.style.display = '없음';
},
bind : function () {
var _this = this;
addEvent(document, 'click', function (e) {
e = e || window.event;
var t = e.target || e.srcElement;
if (t. title != _this.n 'DatePicker') {_this.hide()} else {_this.show()}
})
},
createBox : function(html) {
var box = this.box = document.createElement('div'), 마스크 = this.mask = document.createElement('iframe');
box.className = this.config.className || '날짜 선택기';
mask.src = 'javascript:false';
mask.frameBorder = 0;
box.style.cssText = '위치:절대;표시:없음;z-index:9999';
mask.style.cssText = '위치:절대;표시:없음;z-index:9998';
box.title = this.n 'DatePicker';
box.innerHTML = html;
document.body.appendChild(상자);
document.body.appendChild(마스크);

반품 상자;
}
}

초기화 반환;
}();

调用方式:
复代码 代码如下:

new DatePicker('_DatePicker_demo', {
inputId: 'date-input',
className: 'date-picker-wp',
seprator: '-'
});

第一个参数:实例name,
第二个参数一个对象字number,包括输入框的id(必须),弹个日历box的className,日期样式的分隔符如'-','/',等。后两个可省略,默认值'datepicker','/'。
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
' 연도 '/' 월 '/' 날짜 '