Team:NU Kazakhstan/Notebook
From 2014.igem.org
(Difference between revisions)
Line 141: | Line 141: | ||
</p> | </p> | ||
<br><br><br><br><br> | <br><br><br><br><br> | ||
- | < | + | <table id="calendarBig"> |
- | </ | + | <thead> |
- | + | <tr><td><td><td> | |
+ | <tbody> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <table data-m="0"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Январь | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <td> | ||
+ | <table data-m="1"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Февраль | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <td> | ||
+ | <table data-m="2"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Март | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <table data-m="3"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Апрель | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <td> | ||
+ | <table data-m="4"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Май | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <td> | ||
+ | <table data-m="5"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Июнь | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <table data-m="6"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Июль | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <td> | ||
+ | <table data-m="7"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Август | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <td> | ||
+ | <table data-m="8"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Сентябрь | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <table data-m="9"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Октябрь | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <td> | ||
+ | <table data-m="10"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Ноябрь | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | <td> | ||
+ | <table data-m="11"> | ||
+ | <thead> | ||
+ | <tr><td colspan="7">Декабрь | ||
+ | <tr><td>Пн<td>Вт<td>Ср<td>Чт<td>Пт<td>Сб<td>Вс | ||
+ | <tbody> | ||
+ | </table> | ||
+ | </table> | ||
+ | |||
+ | <!-- | ||
+ | День рождения происходит из года в год, поэтому data-yyyy (год) не указывается. | ||
+ | Можно чтобы дата была ссылкой на другую страницу, тогда нужно написать data-link (адрес страницы, куда перенаправить пользователя). Одна дата не может вести на несколько страниц [вернее может, но в код нужно внести дополнительные изменения]. | ||
+ | data-dd (день), data-mm (месяц), data-text(сообщение, видимое при наведении курсора мышки) нужно заполнять всегда. Один день может содержать несколько записей, одна дата может иметь только один data-text (см. пример 3). | ||
+ | --> | ||
+ | <div id="calendarTable"> | ||
+ | <div data-dd="18" data-mm="8" data-text="День рождения"></div> | ||
+ | <div data-dd="5" data-mm="1" data-yyyy="2013" data-text="регулярные выражения | ||
+ | JavaScript примеры" data-link="http://shpargalkablog.ru/2013/07/replace.html"></div> | ||
+ | <div data-dd="28" data-mm="11" data-yyyy="2013" data-text="✈ встреча у бабушки | ||
+ | ☏ поздравить Ивана Ивановича с именинами | ||
+ | ☄ комета ISON"></div> | ||
+ | </div> | ||
+ | |||
+ | <script> | ||
+ | function calendarBig(year) { | ||
+ | for (var m = 0; m <= 11; m++) { | ||
+ | var D = new Date(year,[m],new Date().getDate()), | ||
+ | Dlast = new Date(D.getFullYear(),D.getMonth()+1,0).getDate(), | ||
+ | DNlast = new Date(D.getFullYear(),D.getMonth(),Dlast).getDay(), | ||
+ | DNfirst = new Date(D.getFullYear(),D.getMonth(),1).getDay(), | ||
+ | calendar = '<tr>'; | ||
+ | |||
+ | if (DNfirst != 0) { | ||
+ | for(var i = 1; i < DNfirst; i++) calendar += '<td>'; | ||
+ | }else{ | ||
+ | for(var i = 0; i < 6; i++) calendar += '<td>'; | ||
+ | } | ||
+ | |||
+ | for(var i = 1; i <= Dlast; i++) { | ||
+ | if (i == D.getDate() && D.getFullYear() == new Date().getFullYear() && D.getMonth() == new Date().getMonth()) { | ||
+ | calendar += '<td class="today">' + i; | ||
+ | }else{ | ||
+ | if ( | ||
+ | (i == 1 && D.getMonth() == 0 && ((D.getFullYear() > 1897 && D.getFullYear() < 1930) || D.getFullYear() > 1947)) || | ||
+ | (i == 2 && D.getMonth() == 0 && D.getFullYear() > 1992) || | ||
+ | ((i == 3 || i == 4 || i == 5 || i == 6 || i == 8) && D.getMonth() == 0 && D.getFullYear() > 2004) || | ||
+ | (i == 7 && D.getMonth() == 0 && D.getFullYear() > 1990) || | ||
+ | (i == 23 && D.getMonth() == 1 && D.getFullYear() > 2001) || | ||
+ | (i == 8 && D.getMonth() == 2 && D.getFullYear() > 1965) || | ||
+ | (i == 1 && D.getMonth() == 4 && D.getFullYear() > 1917) || | ||
+ | (i == 9 && D.getMonth() == 4 && D.getFullYear() > 1964) || | ||
+ | (i == 12 && D.getMonth() == 5 && D.getFullYear() > 1990) || | ||
+ | (i == 7 && D.getMonth() == 10 && (D.getFullYear() > 1926 && D.getFullYear() < 2005)) || | ||
+ | (i == 8 && D.getMonth() == 10 && (D.getFullYear() > 1926 && D.getFullYear() < 1992)) || | ||
+ | (i == 4 && D.getMonth() == 10 && D.getFullYear() > 2004) | ||
+ | ) { | ||
+ | calendar += '<td class="holiday">' + i; | ||
+ | }else{ | ||
+ | calendar += '<td>' + i; | ||
+ | } | ||
+ | } | ||
+ | if (new Date(D.getFullYear(),D.getMonth(),i).getDay() == 0) { | ||
+ | calendar += '<tr>'; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (DNlast != 0) { | ||
+ | for(var i = DNlast; i < 7; i++) calendar += '<td>'; | ||
+ | } | ||
+ | |||
+ | document.querySelector('#calendarBig table[data-m="' + [m] + '"] tbody').innerHTML = calendar; | ||
+ | document.querySelector('#calendarBig > thead td:nth-child(2)').innerHTML = 'Календарь на ' + year + ' год'; | ||
+ | document.querySelector('#calendarBig > thead td:nth-child(1)').innerHTML = 'Календарь на ' + parseFloat(parseFloat(year)-1) + ' год'; | ||
+ | document.querySelector('#calendarBig > thead td:nth-child(3)').innerHTML = 'Календарь на ' + parseFloat(parseFloat(year)+1) + ' год'; | ||
+ | |||
+ | // абзац создаёт сообщения | ||
+ | for (var k = 1; k <= document.querySelectorAll('#calendarTable div').length; k++) { | ||
+ | var myD = document.querySelectorAll('#calendarBig table td'), | ||
+ | my = document.querySelector('#calendarTable div:nth-child(' + [k] + ')'); | ||
+ | for (var i = 0; i < myD.length; i++) { | ||
+ | if (my.dataset.yyyy) { | ||
+ | if (myD[i].innerHTML == my.dataset.dd && myD[i].parentNode.parentNode.parentNode.dataset.m == (my.dataset.mm - 1) && year == my.dataset.yyyy) { | ||
+ | myD[i].title = my.dataset.text; | ||
+ | if (my.dataset.link) { | ||
+ | myD[i].innerHTML = '<a href="' + my.dataset.link + '" target="_blank">' + myD[i].innerHTML + '</a>'; | ||
+ | } | ||
+ | } | ||
+ | }else{ | ||
+ | if (myD[i].innerHTML == my.dataset.dd && myD[i].parentNode.parentNode.parentNode.dataset.m == (my.dataset.mm - 1)) { | ||
+ | myD[i].title = my.dataset.text; | ||
+ | if (my.dataset.link) { | ||
+ | myD[i].innerHTML = '<a href="' + my.dataset.link + '" target="_blank">' + myD[i].innerHTML + '</a>'; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | }} | ||
+ | |||
+ | calendarBig(new Date().getFullYear()); | ||
+ | document.querySelector('#calendarBig > thead td:nth-child(1)').onclick = calendarBigG; | ||
+ | document.querySelector('#calendarBig > thead td:nth-child(3)').onclick = calendarBigG; | ||
+ | function calendarBigG() {calendarBig(this.innerHTML.replace(/[^\d]/gi, ''));} | ||
+ | |||
+ | </script> | ||
+ | <br> <br><br><br><br><br> | ||
<p>text | <p>text | ||
</p> | </p> |
Revision as of 16:48, 17 July 2014
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|