Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрипт обратного отсчёта времени (https://javascript.ru/forum/dom-window/4869-skript-obratnogo-otschjota-vremeni.html)

Bakers Dozen 25.08.2009 23:13

Скрипт обратного отсчёта времени
 
Всем здрасте,помогите мне пожалуйста :help: .Мне нужен таймер обратного отсчёта времени,желательно в секундах.Время я должен установить сам.В конце должна появится ссылка,ну или текст какой-нибудь..Скрипт очень нужен.Заранее спасибо! :)

Riim 25.08.2009 23:15

http://woweb.ru/load/100

alexKniaz 25.08.2009 23:16

Типа того:
<script type="text/javascript">
function timer(){
 var obj=document.getElementById('timer_inp');
 obj.innerHTML--;
 
 if(obj.innerHTML==0){alert('Hello');setTimeout(function(){},1000);}
 else{setTimeout(timer,1000);}
}
setTimeout(timer,1000);
</script>
<div id="timer_inp">10</div>

SUPERGOORU 19.12.2009 15:40

обратный до конца света
 
<center><a href="http://kovcheg.ucoz.org/"> <img src="http://kovcheg.ucoz.org/banner.gif" border="0"></a></center><br><br>

<center>До 21 декабря 2012 года осталось:</center><br>

<SCRIPT language="JavaScript" type="text/javascript">
function fulltime () {
var time=new Date();
var newYear=new Date("dec,21,2012,11:11:00");
var totalRemains=(newYear.getTime()-time.getTime());

if (totalRemains>1){

var RemainsSec = (parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec));
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
if (RemainsFullHours<10){RemainsFullHours="0"+Remains FullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinu tes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};

document.getElementById("RemainsFullDays").innerHT ML=RemainsFullDays+" секунд";
setTimeout('fulltime()',10)
}

else{
document.getElementById("clock").innerHTML="Поз дравляем с Новой Эрой!";
}
}
</SCRIPT>

<body>
<div align="center"><span id="clock"></div>
<div align="center"><b><span id="RemainsFullDays"></span></b></div><br>
</span>

<SCRIPT language=JavaScript>fulltime();</SCRIPT>

JimmyCalling 06.06.2010 18:11

alexKniaz, а как сделать, чтоб перед и после надписи оставшихся секунд был текст и чтобы всё было на одной строке?
Когда я вставляю до и после текст, из-за тега <div> выходит:
Вы перейдёте через
15
секунд


А мне нужно:
Вы перейдёте через 15 секунд

Ведь после тега <div> идёт ещё id="timer_inp", поэтому если убрать тег <div>, таймер будет стоять на месте.

Подскажи пожалуйста что делать!

Vulkan 06.06.2010 19:07

<div style="float:left;">Текст спереди</div><div id="timer_inp" style="float:left;">10</div><div style="float:left;">Текст после таймера</div>

float -даёт обтекание текстом, в данном случае нужно по левой стороне.

JimmyCalling 06.06.2010 19:21

Спасибо, почти получилось, но надписи слева и справа прямо "прилипли" к таймеру. Пробелами отделять почему-то не получается.
Выходит:

Вы перейдёте к добавлению материала через15секунд

Что делать теперь?

Vulkan 06.06.2010 19:51

Ну можно так:
<div style="float:left; margin-right:5px;">Текст спереди</div><div id="timer_inp" style="float:left;">10</div><div style="float:left; margin-left:5px;">Текст после таймера</div>

margin - даёт отступ от соседнего элемента
или так:
<div style="float:left;">Текст спереди</div>&nbsp;<div id="timer_inp" style="float:left;">10</div>&nbsp;<div style="float:left; margin-left:5px;">Текст после таймера</div>

&nbsp; - знак пробела, должен помочь, их можно поставить несколько

JimmyCalling 06.06.2010 20:34

Спасибо, помогло

Vulkan 06.06.2010 20:51

Цитата:

Сообщение от JimmyCalling (Сообщение 58142)
Спасибо, помогло

Советую тебе поучиться CSS тут htmlbook, думаю откроешь для себя много нового ;)

parzh-junior 07.06.2010 17:59

Цитата:

Сообщение от Vulkan
<div style="float:left; margin-right:5px;">Текст спереди</div><div id="timer_inp" style="float:left;">10</div><div style="float:left; margin-left:5px;">Текст после таймера</div>

Как всё сложно! Не легче ли сделать:
document.getElementById("clock").innerHTML = До конца света осталось "+переменная+" секунд.

????

Aetae 07.06.2010 19:20

Смешная тема такая смешная.

Angelok 07.12.2010 13:01

а как сделать чтоб вместо всплывающего окна Hello показывалось что-то другое....но не в окне (как менять текст в окне я знаю)
мне нужно чтоб по окончании времени было вместо строки "Через 10 секунд" другой текст(или к примеру ссылка на скачивание)


хочу сделать на сайте ucoz что-то как на этом http://mskd.ru/?id.283542.music.Zaky...sigaretky-2010 (внизу ссылки в скрипте с отсчетом времени)

monolithed 07.12.2010 13:40

<script type="text/javascript">
window.onload = function(){
var i = 10;
    (function(){
        document.getElementsByTagName('div')[0].innerHTML = --i>=0 ? i : "<a href=\"http://ya.ru/\">click</a>"
        window.setTimeout(arguments.callee, 1000);
    })();
};
</script>
<div></div>

Angelok 07.12.2010 13:52

да...но это прописывается в шаблоне....а мне надо чтоб скрипт писался в окне добавления новости на сайте....и в скрипт вставлять ссылки на ФО...
вернее чтоб они сами как то добавлялись в скрипт))))

monolithed 07.12.2010 14:04

Angelok Никто за вас это делать не будет!

Angelok 07.12.2010 14:59

Цитата:

Сообщение от monolithed (Сообщение 82671)
Angelok Никто за вас это делать не будет!

я это знаю...но хотелось бы знать такое возможно сделать на юкозе или нет :)

вернее возможно ли сделать на юкозе так как на том сайте

monolithed 07.12.2010 15:27

Цитата:

Сообщение от Angelok
вернее возможно ли сделать на юкозе так как на том сайте

Можно. Но для чего? если чтобы показывать рекламу то это глупо! Если нет и просто по приколу заставить пользователей ждать 30 сек, то это подростковая тупость.

Angelok 07.12.2010 15:32

Цитата:

Сообщение от monolithed (Сообщение 82685)
Можно. Но для чего? если чтобы показывать рекламу то это глупо! Если нет и просто по приколу заставить пользователей ждать 30 сек, то это подростковая тупость.

скажу по секрету для того чтоб ссылки показывались после отсчета времени(я же говорю, хочу сделать как на том сайте):)
спасибо за подростковую тупость...
сорри за оффтоп

Kolyaj 07.12.2010 17:32

А вы понимаете, зачем на том сайте так сделано, или просто так хотите, чтоб как там?

Angelok 07.12.2010 17:37

Цитата:

Сообщение от Kolyaj (Сообщение 82709)
А вы понимаете, зачем на том сайте так сделано, или просто так хотите, чтоб как там?

конечно понимаю))) поэтому и хочу как там...но там сайт не юкоз поэтому и проблема для меня((

Kolyaj 07.12.2010 17:46

Вы делаете на юкозе файлохостинг с премиум-аккаунтами?

Angelok 07.12.2010 17:53

Цитата:

Сообщение от Kolyaj (Сообщение 82711)
Вы делаете на юкозе файлохостинг с премиум-аккаунтами?

:stop: думаю это не касается вопроса...и считается оффтопом...
подобные вопросы лучше в личку

Grandok 27.11.2011 20:58

можете подсказать скрипт отсчета времени, который после допустим нескольких просмотров выводил некий код...

rost 30.04.2012 00:50

А как подгрузить этот отсчет через AJAX... ибо на странице которую я прогружаю уже после открытия основной, таймер работать нехочет.
А так все работает как надо.
Только без дыбильных ответов как мне подключить srcipt или AJAX и тд...
Запората сама функция обновления чтоли или как-то так(

9xakep 30.04.2012 09:28

rost,
покажи код

rost 01.05.2012 20:02

Цитата:

Сообщение от 9xakep (Сообщение 172030)
rost,
покажи код

Ну допустим вот у меня это сидит в header.php:
<!-- |ТАЙМЕР| -->
<script type="text/javascript"> 
function timer(){ 
var obj=document.getElementById('timer_inp'); 
obj.innerHTML--; 
if(obj.innerHTML==0){setTimeout(function(){},1000);} 
 else{setTimeout(timer,1000);} 
} 
setTimeout(timer,1000); 
</script>


Если я использовал что-то типа GET или POST, то я могу на любой странице вывести типа такого:
<p> Новое сообщение можете написать только через <span id="timer_inp">30</span> секунд </p>

и будет тикать 30...29...28...

Если же ситуация такова, что я прогрузил страницу, а на ней у меня новое сообщение шлет через AJAX без перезагрузки самой страницы, то таймер нетикакет...

Встроена часть аякса примерно так:
<div id="divActivities"></div>


Ну и на странице той тот же самый кусок про время:
<p> Новое сообщение можете написать только через <span id="timer_inp">30</span> секунд </p>

Пытался я многими способами как советовали... но думаю гдето грешу и валится все... помогите пожалуйята непосредственно кодом самим (уже который будет работать) если можно, а не очередным советом как мне это сделать или исправить, а то уже устал))) :-?

Denizz 02.05.2012 23:45

Просто скрипт с настраиваемым текстом/ссылки после него можно посмотреть здесь : http://codomaza.com/script/skript-ob...-na-javascript

rost 03.05.2012 19:01

Спс , непроверял еще, но описано (как на 1 взгляд) очень хорошо)
результат отпишу)

denkoh 22.07.2012 21:54

Люди добрые, помогите пожалуйста! Нужен html код или скрипт редиректа с таймером на подобие того что здесь обсуждается! Буду примного благодарен за помощь! :thanks:

Bronzel 30.08.2012 01:10

помогите пожайлуста исправить код так чтобы когда закончится время таймер снова сам перестартовывал автоматически сначала и так по кругу бы шёл и не останавливался

<head>

<script type="text/javascript">
var _currentSeconds=0;

var _FontSize=10;
var _AnzElm=0;

var _timerID=0;


function init() {
_AnzElm = document.getElementById("Anzeige");}


function SchriftGroesse(str_operator) {
var newFontSize=0;
eval("newFontSize = _FontSize" + str_operator + "1");
_AnzElm.style.fontSize = newFontSize + "em";
_FontSize = newFontSize;}


function ResetText() {
var h_container = document.getElementById("hr");

var m_container = document.getElementById("min");

var s_container = document.getElementById("sec");

if (!isNaN(parseInt(h_container.value))) {
Sekunden = parseInt(h_container.value)*3600;
} else {
alert("Ungültige Stundenangabe!");
return;
}

if (!isNaN(parseInt(m_container.value))) {
Sekunden += parseInt(m_container.value)*60;
} else {
alert("Ungültige Minutenangabe!");
return;
}
if (!isNaN(parseInt(s_container.value))) {
Sekunden += parseInt(s_container.value);
} else {
alert("Ungültige Sekundenangabe!");return;
}


SetCountdownText(Sekunden);
}
function StartTimer() {
if (_timerID == 0) {
ResetText();
_timerID = window.setInterval("CountDownTick()", 1000);
}
}


function ResetTimer() {
ResetText();_currentSeconds=0;
StopTimer();
}

function StopTimer() {
if (_timerID > 0) {
window.clearInterval(_timerID);
_timerID = 0;
}
}


function ContinueTimer() {
if (_timerID == 0) {
_timerID = window.setInterval("CountDownTick()", 1000);
}
}


function CountDownTick() {
if (_currentSeconds <= 0) {
StopTimer();
return;
}
SetCountdownText(_currentSeconds-1);
}


function SetCountdownText(seconds) {
_currentSeconds = seconds;

var minutes=parseInt(seconds/60);
seconds = (seconds%60);

var hours=parseInt(minutes/60);
minutes = (minutes%60);

var strText = AddNull(hours) + ":" + AddNull(minutes) + ":" + AddNull(seconds);
_AnzElm.innerHTML = strText;
}


function AddNull(num) {
return ((num >= 0)&&(num < 10))?"0"+num:num+"";
}


function MM_goToURL() {
var i, args=MM_goToURL.arguments; document.MM_return
Value = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
-->

</script>



<style type="text/css">
<!--
body {
font-family: Verdana, Geneva, Arial, helvetica, sans-serif;
font-size: 12px;
font-weight:bold;
text-align:center;
background-color: #FFFFFF;
color: black;
height: 100%;
margin: 0px;
}


.anzeige {
width:100%;
z-index:0;
font-size:10em;
font-weight:normal;
margin-top:1%;
}


.button {
text-align:center;
font-weight:bold;
}


.input {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
text-align:right;
}


.controls {
border-bottom:1px solid gray;
height:30px;
margin-top:10px;
}

.copyright {
font-size:9px;
color:#999999;
font-weight:normal;
}

.copyright a {
color:#999999;
text-decoration:none;
}


.copyright a:hover {
color:black;
text-decoration:none;
}


</style>


</head>


<body onload="init();" onunload="StopTimer();">

<form action="">

<input name="hr" type="text" id="hr" value="1" size="2" maxlength="2" /> h

<input name="min" type="text" id="min" value="0" size="2" maxlength="2" /> m
<input name="sec" type="text" id="sec" value="0" size="2" maxlength="2" /> s
<input class="button" name="reset" type="button" id="reset" value="Reset" onclick="ResetTimer();"/>

<input class="button" name="start" type="button" id="start" value="Start" onclick="StartTimer();" />
<input class="button" name="stop" type="button" id="stop" value="Stop" onclick="StopTimer();" />

<input class="button" name="continue" type="button" id="continue" value="Weiter" onclick="ContinueTimer(); " />
Schrift:
<input class="button" name="smaller" type="button" id="smaller" value="kleiner" onclick="SchriftGroesse('-');"/>
<input class="button" name="bigger" type="button" id="bigger" value="größer" onclick="SchriftGroesse('+');"/>

</form>

<div class="anzeige" id="Anzeige">01:00:00</div>
</body>

</html>

Bronzel 01.09.2012 00:44

Спасибо огромное всё работает как хотел. Я ещё сверху добавил

<script language="JavaScript">
function uhr() {
var Datum = new Date();
var Tag = Datum.getDate();
var Monat = Datum.getMonth()+1;
var Jahr = Datum.getFullYear();
var Stunden = Datum.getHours();
var Minuten = Datum.getMinutes();
var Sekunden = Datum.getSeconds();
if (Stunden <10) {Stunden= "0" + String(Stunden);}
if (Minuten <10) {Minuten= "0" + String(Minuten);}
if (Sekunden <10){Sekunden= "0" + String(Sekunden);}
if (Monat <10){Monat= "0" + String(Monat);}
if (Tag <10) {Tag= "0" + String(Tag);}
document.getElementById("webtodateuhr").innerHTML = Tag + "." + Monat + "." + Jahr + " __ " + Stunden + ":" + Minuten + ":" + Sekunden + " Uhr";
timerID = setTimeout("uhr()",1000)}</script>
<div id="webtodateuhr" style="font-size:150%; Color: black;"><p> _ </p></div>
<script language="JavaScript">uhr();
</script>

Bronzel 13.10.2012 02:44

Подскажите почему в IE сигнал работает (оба варианта) а в Firefox нет

http://learn.javascript.ru/play/ydmMF


Часовой пояс GMT +3, время: 10:27.