vadim5june, спасибо
|
vadim5june,
Симпатично, но для полного счастья(полноценного API) - интересно возможность динамического добавления/cнятие/изъятия пунктов, И думаю - формат отображалки - отдельной подключаемой функцией |
vadim5june,
А можно, чтобы не просто счётчик 1, 2, 3... а чтобы время указывалось. |
Цитата:
Цитата:
и вставить тогда будет примерно так осталось 2дня 12 часов 34мин 34сек |
Цитата:
|
Если я правильно понимаю, то распарсить вариант "2дня 12 часов 34мин 34сек", чтобы получить время в секундах будет проблематично. Значит используемое время для дедлайна и отображаемое пользователю должны быть внутри разных тегов.
Только у меня ни как не получается взять время из одного тега и положить в другой. Ни то, чтобы я не знал как это делается (сделать выборку тегов и перебрать их я умею), но что-то не выходит. |
страница имеет такой код:
<span class="timer-wrp"><span class="time_in">15</span>[<span class="time_out"></span>]</span> Для начала, так переписал предложенный скрипт: setInterval(function() { myTimer() }, 1000) function myTimer() { var els = document.querySelectorAll('.timer-wrp'); for ( var i = 0; i < els.length; i++) { var el_in = els[i].querySelectorAll('.time_in'); var el_out = els[i].querySelectorAll('.time_out'); var t = el_in.innerHTML; if (t == 0) continue; t--; el_in.innerHTML = t; el_out.innerHTML = t; } } Но почему-то не находит нужных элементов. |
Как взять и положить значение разобрался
setInterval(function() { myTimer() }, 1000) function myTimer() { var els = document.querySelectorAll('.timer-wrp'); for ( var i = 0; i < els.length; i++) { var el_in = els[i].querySelectorAll('.time_in'); var el_out = els[i].querySelectorAll('.time_out'); var t = el_in[0].innerHTML; if (t == 0) continue; t--; el_in[0].innerHTML = t; el_out[0].innerHTML = t; } } копаюсь дальше |
вот здесь нашел функцию преобразования
http://snippets.artvolk.sumy.ua/view...-na-javascript с ней так получается <!DOCTYPE HTML> <html> <table border=1 width=100%> <tr><td>пожарить блины</td><td class='time'>125</td></tr> <tr><td>заварить чай</td><td class='time'>81</td></tr></table> <script> setInterval(function(){var els=document.querySelectorAll('.time'); for(var i=0;i<els.length;i++) {if(!els[i].t)els[i].t=els[i].innerHTML;var t=els[i].t;if(t==0)continue;t--;els[i].innerHTML=toFormattedTime(t,1,1);els[i].t=t;if(t==0){alert(els[i].parentNode.querySelector('td').innerHTML);els[i].parentNode.style.background='red';}} },1000); //------- function toFormattedTime(input, withHours, roundSeconds) {if (input<=0)return '00:00:00'; if (roundSeconds) { input = Math.ceil(input); } var hoursString = '00'; var minutesString = '00'; var secondsString = '00'; var hours = 0; var minutes = 0; var seconds = 0; hours = Math.floor(input / (60 * 60)); input = input % (60 * 60); minutes = Math.floor(input / 60); input = input % 60; seconds = input; hoursString = (hours >= 10) ? hours.toString() : '0' + hours.toString(); minutesString = (minutes >= 10) ? minutes.toString() : '0' + minutes.toString(); secondsString = (seconds >= 10) ? seconds.toString() : '0' + seconds.toString(); return ((withHours) ? hoursString + ':' : '') + minutesString + ':' + secondsString; } </script> |
Aeliot,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <span class="timer-wrp"><span class="time_in">15</span>[<span class="time_out"></span>]</span> <script> setInterval(function() { myTimer() }, 1000) function myTimer() { var els = document.querySelectorAll('.timer-wrp'); for ( var i = 0; i < els.length; i++) { var el_in = els[i].querySelector('.time_in'); var el_out = els[i].querySelector('.time_out'); var t = el_out.innerHTML||+el_in.innerHTML+1; if (t == 0)continue; t--; el_out.innerHTML = t; } } </script> </body> </html> |
Часовой пояс GMT +3, время: 14:07. |