国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

原生JS實現日歷組件的示例代碼

2019-11-19 15:20:12
字體:
來源:轉載
供稿:網友

想要實現的效果

  • 點擊日期選擇框出現日歷
  • 有個日期控制欄幫助選擇日期, 包括年、月、日的選擇和今天
  • 日歷格子,初次點擊日期選擇框時顯示此刻的日期,日歷格子的日期應該包括這個月的所有天數,同時如果當月的1號不是周日,還應補全從周日到1號的天數。還要在這個月最后1號的后面補全到周六。
  • 日期控制欄和日歷格子的日期還有選擇框里的日期的變化要是同步的。

實現思路

為了組件的可復用性,需要用面向對象的思想。

每個日歷組件都是一個日歷對象,主要包括日期選擇框,日期控制顯示欄,還有日歷格子,為了保持日期控制顯示欄和日歷格子日期同步變化,日期控制欄和日歷里面的每個格子都應該包含一個Date屬性,點擊日歷里的格子,將格子存的Date屬性作為函數參數,調用函數改變日期控制欄顯示的時間。同理,日期控制欄時間變化時,也將Date屬性作為參數調用函數,函數重新繪制日歷格子。

上碼:

function Calendar(parentId) {  this.parentElement = document.getElementById(parentId);  this.init();}Calendar.prototype = {  init: function() {    this.contains = document.createElement("div");    this.contains.onselectstart = function(){return false};  //讓按鈕點擊時不會出現文字被選中的藍色塊    this.dateInput = document.createElement("input");    this.datePicker = document.createElement("div");    this.showDateBar = document.createElement("div");    this.dateBox = document.createElement("div");    this.icon = document.createElement("i");    this.contains.className = 'datepicker-container';    this.dateInput.className = 'date-input';    this.dateInput.readOnly = true;    var parent = this;    this.dateInput.onclick = function(event){      parent.onDateInputClick(event);      //點擊日期選擇框時顯示日歷格子            };    this.contains.onblur = function(){      parent.datePicker.style.display = 'none';    }    this.datePicker.className = 'date-picker';    this.datePicker.style.display = 'none';    this.showDateBar.className = 'show-date';    this.dateBox.className = 'date-box';    this.icon.className = 'date-icon';    this.icon.innerHTML = '

主站蜘蛛池模板:
陇川县|
南宫市|
法库县|
南溪县|
临汾市|
奈曼旗|
彭泽县|
刚察县|
广东省|
禹州市|
井陉县|
安新县|
禄丰县|
昭苏县|
井冈山市|
郴州市|
潞城市|
毕节市|
宿迁市|
乌什县|
湖州市|
合江县|
宜春市|
梓潼县|
利辛县|
永嘉县|
安庆市|
民权县|
安乡县|
汝城县|
灵丘县|
佛山市|
紫云|
普兰县|
昌江|
长岛县|
蒙城县|
密山市|
广宗县|
红桥区|
和顺县|