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, время: 22:06. |