Блондинка,
в теге input есть свой календарь, зачем ещё один, спрашивает Rise? |
Возникла одна проблема, вчера отложила телефон, экран естественно погас, сегодня включаю тел и в календаре подсвечены вчерашние число и день недели...
Второй момент, если на страницу зайти без малого полночь, пока читаешь текст страницы наступают новые сутки а подсвечены остаются день и число вчерашних суток... Возможно ли как-то отследить что экран включился, а также наступление 00:00 часов и обновить отдельный блок? Вот немного поправила стили и html... <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>тест-календарь</title> <style> body { width: 350px; } #calendar { width: 320px; padding: 5px; margin: 5px; border: 1px solid #a9a9a9; border-radius: 6px/4px; } input[type=month] { width: 100%; border: 1px solid #a9a9a9; border-radius: 6px/4px; text-align: center; } table { border-collapse: separate; width: 100%; padding: 1px; } table, th, td { border: 1px solid #a9a9a9; border-radius: 6px/4px; margin: 1px; } th, td { text-align: center; } .wrapper { margin-top: 5px; } .anotherMonthWeek { background-color: #e6f5ff; color: #9ed9ff; border: 1px solid #dcdcdc; } /* дата будние дни другой месяц */ .anotherMonthWeekEnd { background-color: #fff5fa; color: #ffb8db; border: 1px solid #dcdcdc; } /* дата выходные дни другой месяц */ .currentMonthWeek { background-color: #def1ff; color: #0091ff; } .currentMonthWeekEnd { background-color: #ffc3d7; color: #dc143c; } /* дата выходные дни */ .currentDay{ background-color: #c2d6ff; border: 1px solid #0000ff; font-weight: bold; color: #ffffff; text-shadow: 1px 1px #0000ff, -1px 1px #0000ff, 1px -1px #0000ff, -1px -1px #0000ff, 1px 0px #0000ff, 0px 1px #0000ff, -1px 0px #0000ff, 0px -1px #0000ff; } #wrapper th { background-color: #c2d6ff; color: #0069ff; } #wrapper th:nth-child(n+6){ background-color: #ffb4d2; color: #b92346; } /* дни недели выходные дни */ #wrapper th.currentDay { border: 1px solid #285fcd; background-color: #6b9cff; color: #E6f5ff; text-shadow: 1px 1px #285fcd, -1px 1px #285fcd, 1px -1px #285fcd, -1px -1px #285fcd, 1px 0px #285fcd, 0px 1px #285fcd, -1px 0px #285fcd, 0px -1px #285fcd; } #wrapper th:nth-child(n+6).currentDay{ border: 1px solid #b92346; background-color: #ff73a0; color: #ffafc8; text-shadow: 1px 1px #b92346, -1px 1px #b92346, 1px -1px #b92346, -1px -1px #b92346, 1px 0px #b92346, 0px 1px #b92346, -1px 0px #b92346, 0px -1px #b92346; } #wrapper td:nth-child(n+6).currentDay{ background-color: #ff85ad; border: 1px solid #ff0000; font-weight: bold; color: #ffffff; text-shadow: 1px 1px #ff0000, -1px 1px #ff0000, 1px -1px #ff0000, -1px -1px #ff0000, 1px 0px #ff0000, 0px 1px #ff0000, -1px 0px #ff0000, 0px -1px #ff0000; } button.current.hide { display: none; } button { width: 100%; border: 1px solid #a9a9a9; border-radius: 6px/4px; } </style> </head> <body> <div id="calendar"> <form name="formDate"> <input type="month" id="inpDate" name="inpDate"> <button type="button" class="current hide">сегодня</button> </form> <div class="wrapper" id="wrapper"></div> <script> var wrapper = document.getElementById("wrapper"); var form = document.forms.formDate; var button = document.querySelector("button.current"); function createTable(event){ var date = form.inpDate.valueAsDate; if(button) button.classList.remove("hide"); if(date){ var current = new Date(); current.setHours(0,0,0,0); date.setDate(1); date.setHours(0); date.setSeconds(0); date.setMilliseconds(0); var date2 = new Date(date.getTime()); var month = date.getMonth(); while(date.getDay() != 1){ date.setDate(date.getDate()-1); } date2.setMonth(date2.getMonth()+1); date2.setDate(1); date2.setHours(0); date2.setSeconds(0); date2.setMilliseconds(0); var trs = Math.ceil((date2-date)/1000/3600/24/7)+1; var table = document.createElement('table'); var i = 0; var daysPerWeek = 7; while(i<trs){ var tr = document.createElement('tr'); if(i == 0){ for(var j=0; j<daysPerWeek; j++){ var th = document.createElement('th'); th.innerText = getShortNameOfDay(j); tr.appendChild(th); } table.appendChild(tr); } else{ for(var j=0; j<daysPerWeek; j++){ var td = document.createElement('td'); if(date.getMonth() == month){ if(date.getDay() == 0 || date.getDay() == 6){ td.className = "currentMonthWeekEnd"; } else{ td.className = "currentMonthWeek"; } } else { if(date.getDay() == 0 || date.getDay() == 6){ td.className = "anotherMonthWeekEnd"; } else{ td.className = "anotherMonthWeek"; } } if(date.getTime() == current.getTime()) { td.className = "currentDay"; table.querySelectorAll("th")[j].className = "currentDay"; if(button) button.classList.add("hide"); } td.innerText = date.getDate(); date.setDate(date.getDate() + 1); tr.appendChild(td); table.appendChild(tr); } } i++; } wrapper.innerHTML = ""; wrapper.appendChild(table); } }; function setToday() { form.inpDate.valueAsDate = new Date(); var event = new Event('change'); form.dispatchEvent(event); } if(wrapper && form){ form.addEventListener('change', createTable); button && button.addEventListener("click", setToday); setToday() } function getShortNameOfDay(x){ var name = "xx"; switch(x){ case 0: name = "Пн"; break; case 1: name = "Вт"; break; case 2: name = "Ср"; break; case 3: name = "Чт"; break; case 4: name = "Пт"; break; case 5: name = "Сб"; break; case 6: name = "Вс"; } return name; } </script> </div> </body> </html> |
Rise,
К сожалению для меня не очевидно, поскольку хромом я пользуюсь очень редко, а в моём браузере данных кнопочек нету, если предложишь свой вариант календаря заменив поле для ввода месяца на выпадающий список с кнопками < и > для выбора месяца и поле ввода с кнопками < и > для ввода года, буду благодарна... |
Цитата:
|
laimas,
В Habbit browser для android... |
Rise,
обновление дива раз в секунду нормально? не слишком часто? можешь заменить поле для выбора месяца и добавить обновление дива? |
Русский,
по идее этот вариант должен сработать даже если просто отложить тел и экран погас, а потом через несколько дней зайти на эту страницу? |
недокалькуляторы, это что за зверь такой?
|
Русский,
параметр run сделает пример запускаемым. [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Народ, кто может исправить скрипт из 16 поста?
надо заменить <input type="month">на <button>«</button> <select name="month"> <option>январь</option> <option>февраль</option> <option>март</option> <option>апрель</option> <option>май</option> <option>июнь</option> <option>июль</option> <option>август</option> <option>сентябрь</option> <option>октябрь</option> <option>ноябрь</option> <option>декабрь</option> </select> <button>» </button> <button>« </button> <input name="year"> <button>» </button>и доработать обновление дива по таймеру при наступлении новых суток. |
Часовой пояс GMT +3, время: 21:42. |