国产探花免费观看_亚洲丰满少妇自慰呻吟_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 = '

主站蜘蛛池模板:
江川县|
神木县|
临夏市|
蓬安县|
沙雅县|
成都市|
澄迈县|
平昌县|
汤阴县|
宝丰县|
丹棱县|
江西省|
西畴县|
宜君县|
临城县|
固镇县|
舒城县|
衡阳县|
汤阴县|
石台县|
弋阳县|
炎陵县|
荔浦县|
江阴市|
皋兰县|
营山县|
化隆|
电白县|
西吉县|
建德市|
桑植县|
腾冲县|
静乐县|
东兰县|
大余县|
介休市|
信阳市|
台南市|
武平县|
晋江市|
元谋县|