想要實現的效果
實現思路
為了組件的可復用性,需要用面向對象的思想。
每個日歷組件都是一個日歷對象,主要包括日期選擇框,日期控制顯示欄,還有日歷格子,為了保持日期控制顯示欄和日歷格子日期同步變化,日期控制欄和日歷里面的每個格子都應該包含一個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 = '
主站蜘蛛池模板:
江川县|
神木县|
临夏市|
蓬安县|
沙雅县|
成都市|
澄迈县|
平昌县|
汤阴县|
宝丰县|
丹棱县|
江西省|
西畴县|
宜君县|
临城县|
固镇县|
舒城县|
衡阳县|
汤阴县|
石台县|
弋阳县|
炎陵县|
荔浦县|
江阴市|
皋兰县|
营山县|
化隆|
电白县|
西吉县|
建德市|
桑植县|
腾冲县|
静乐县|
东兰县|
大余县|
介休市|
信阳市|
台南市|
武平县|
晋江市|
元谋县|