 |
JavaScript - Вопросы и ответы, обсуждения - Ваши вопросы по Web-программированию только в данном разделе |
28.10.2011, 18:20
|
#1
|
|
|
|
Старший сержант
|
 Регистрация: 03.02.2011
 Сообщений: 178
 Популярность: 2713
 Сказал(а) спасибо: 128
Поблагодарили 230 раз(а) в 110 сообщениях
|
JavaScript
Всем доброго времени суток. Столкнулся с проблемой, С выполнением javaScript'a. На странице он выглядит так:
Код:
<div id="timers_prometiumCollector"></div>
<script language="javascript">
var tmp = new SkylabTimer();
tmp.init('timers_prometiumCollector', 1319810217, 1319888397);
tmp = undefined;
</script>
Вот функция:
Код:
SkylabTimer = function() {};
SkylabTimer.prototype = {
startTime : 0
,endTime : 0
,targetDivId : ''
,targetDiv : null
,timeDiv : null
,barContainerDiv : null
,barDiv : null
,interval : null
,now : 1319810506
,finished : 0
,init : function(divId, start, end)
{
this.startTime = start;
this.endTime = end;
this.targetDivId = divId;
this.targetDiv = document.getElementById(divId);
this.targetDiv.skylabTimer = this;
/*
The following code builds this HTML-structure:
<div class="skylabTimer">
<div class="progressBarOuter">
<div class="time"></div>
<div class="progressBarInner"></div>
</div>
</div>
*/
this.barContainerDiv = document.createElement('div');
var container = this.barContainerDiv;
this.timeDiv = document.createElement('div');
container.appendChild(this.timeDiv);
this.barDiv = document.createElement('div');
var bar = this.barDiv;
container.appendChild(this.barDiv);
this.targetDiv.appendChild(this.barContainerDiv);
// SET UP STYLES...
this.targetDiv.style.position = 'relative';
this.targetDiv.style.marginTop = '3px';
container.style.border = '1px solid #CCCCCC';
container.style.backgroundColor = '#666666';
container.style.height = '13px';
container.style.textAlign = 'left';
this.timeDiv.style.position = 'absolute';
this.timeDiv.style.fontWeight = 'bold';
this.timeDiv.style.textAlign = 'center';
bar.style.height = '13px';
bar.style.backgroundColor = '#00BB00';
// draw timer...
this.render();
// start loop...
this.interval = window.setInterval("document.getElementById('" + divId + "').skylabTimer.render();", 1000);
}
,render : function()
{
var timeLeft = this.endTime - this.now;
if(timeLeft <= 0) {
this.finish();
return;
}
h = Math.floor(timeLeft / 3600);
m = Math.floor((timeLeft - (h * 3600)) / 60);
s = Math.floor(timeLeft - h * 3600 - m * 60);
if (m < 10) m = '0' + String(m);
if (s < 10) s = '0' + String(s);
this.timeDiv.innerHTML = String(h) + ':' + String(m) + ':' + String(s);
var barWidth = 0;
var perc = Math.round((this.now - this.startTime) / (this.endTime - this.startTime) * 100);
var maxBarWidth = 190;
this.barContainerDiv.style.width = String(maxBarWidth) + 'px';
this.timeDiv.style.width = String(maxBarWidth) + 'px';
this.barDiv.style.width = String((maxBarWidth / 100) * perc) + 'px';
this.now++;
}
,finish : function()
{
// end loop...
var str = '0:00:00';
if(this.timeDiv.innerHTML == str) {
this.timeDiv.innerHTML = '';
} else {
this.timeDiv.innerHTML = str;
}
if (this.finished == 5) {
window.clearInterval(this.interval);
do_redirect('indexInternal.es?action=internalSkylab');
}
this.finished++;
}
};
Получается при выполнении Выдается время до окончания. Как выполнить этот скрипт и получить время до финиша?
P.S. Все надо Сделать на delphi!!!
Последний раз редактировалось blad56; 29.10.2011 в 04:57.
|
|
|
29.10.2011, 22:04
|
#2
|
|
|
|
Сержант
|
 Регистрация: 23.09.2009
 Сообщений: 154
 Популярность: 2052
 Сказал(а) спасибо: 21
Поблагодарили 80 раз(а) в 46 сообщениях
|
Re: JavaScript
не понятно, что в итоге надо получить? Предеделать этот скрипт на делфи?
|
|
|
07.11.2011, 18:10
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 18.10.2011
 Сообщений: 0
 Популярность: 12
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: JavaScript
Тоже непонял, что автор хочет.
Причём этот скрипт к Делфи ? Напиши , что ты хочешь получить в итоге.
|
|
|
07.11.2011, 21:19
|
#4
|
|
|
|
Старший сержант
|
 Регистрация: 03.02.2011
 Сообщений: 178
 Популярность: 2713
 Сказал(а) спасибо: 128
Поблагодарили 230 раз(а) в 110 сообщениях
|
Re: JavaScript
В итоге мне нужно получить время до окончания таймера.
|
|
|
07.11.2011, 23:08
|
#5
|
|
|
|
Разведчик
|
 Регистрация: 18.10.2011
 Сообщений: 0
 Популярность: 12
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: JavaScript
|
|
|
10.11.2011, 16:00
|
#6
|
|
|
|
Старший сержант
|
 Регистрация: 03.02.2011
 Сообщений: 178
 Популярность: 2713
 Сказал(а) спасибо: 128
Поблагодарили 230 раз(а) в 110 сообщениях
|
Re: JavaScript
|
|
|
11.11.2011, 11:21
|
#7
|
|
|
|
Сержант
|
 Регистрация: 23.09.2009
 Сообщений: 154
 Популярность: 2052
 Сказал(а) спасибо: 21
Поблагодарили 80 раз(а) в 46 сообщениях
|
Re: JavaScript
|
|
|
15.11.2011, 22:11
|
#8
|
|
|
|
Разведчик
|
 Регистрация: 24.09.2011
 Сообщений: 33
 Популярность: 73
 Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: JavaScript
Код:
procedure CalcTime(StartTime, EndTime:Integer);
var
timeLeft, h, m, s: Integer;
begin
timeLeft := EndTime - StartTime;
h := floor(timeLeft / 3600);
m := floor((timeLeft - (h * 3600)) / 60);
s := floor(timeLeft - h * 3600 - m * 60);
ShowMessage(inttostr(h) + ':' + inttostr(m) + ':' + inttostr(s));
end;
В uses добавь Math. StartTime и EndTime берутся из tmp.init('timers_prometiumCollector', 1319810217, 1319888397);
1319810217 это StartTime, а 1319888397 это EndTime
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 06:24.
|
 |