想要實現的效果
實現思路
為了組件的可復用性,需要用面向對象的思想。
每個日歷組件都是一個日歷對象,主要包括日期選擇框,日期控制顯示欄,還有日歷格子,為了保持日期控制顯示欄和日歷格子日期同步變化,日期控制欄和日歷里面的每個格子都應該包含一個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 = ' 主站蜘蛛池模板: 陇川县| 南宫市| 法库县| 南溪县| 临汾市| 奈曼旗| 彭泽县| 刚察县| 广东省| 禹州市| 井陉县| 安新县| 禄丰县| 昭苏县| 井冈山市| 郴州市| 潞城市| 毕节市| 宿迁市| 乌什县| 湖州市| 合江县| 宜春市| 梓潼县| 利辛县| 永嘉县| 安庆市| 民权县| 安乡县| 汝城县| 灵丘县| 佛山市| 紫云| 普兰县| 昌江| 长岛县| 蒙城县| 密山市| 广宗县| 红桥区| 和顺县|