Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Кнопка с обратным отсчетом (https://javascript.ru/forum/dom-window/54570-knopka-s-obratnym-otschetom.html)

c_zurab 23.03.2015 11:14

Кнопка с обратным отсчетом
 
Здравствуйте...
Пожалуйста помогите. Нужна кнопка с таймером обратного отсчета.

Хочу сделать кнопку с редиректом на другой сайт (_blanck).
После нажатия должна пойти обратный отсвет, скажем 5ть минут. В течение этого времени кнопка будет неактивна. Истечением этого времени кнопка станет активно и можно будет нажать на нее снова и перейти на тот сайт (_blanck), а таймер заново включиться

p.s.
есть один маленький нюанс. при начальном открытие страницы кнопка должна быть активна... после первого нажатия должен начаться отсчет и по кругу.

Можно такое реализовать?
Нашел несколько кодов с кнопками обратного отсчета, но все не то.
Очень надеюсь что тут поможете.

Буду весьма благодарен...
Заранее спасибо всем...

Decode 23.03.2015 16:34

Если я правильно понял:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <button>Button</button>

  <script>
    var button = document.getElementsByTagName('button')[0];

    button.addEventListener('click', function() {
      window.open('http://ya.ru', '_blank');
      this.setAttribute('disabled', 'true');
      setTimeout(function() {
        button.removeAttribute('disabled');
      }, 5000);
    });
  </script>
</body>
</html>

c_zurab 30.04.2015 11:15

решение подсказали на другом форуме
 
<script type="text/javascript">
var W;
function BitcoinFunc1 ()
{
var o = document.getElementById ('BitcoinBtn1');
o.disabled = 1; o.value = 'Wait 60m.';
W = window.open ('http://yandex.ru', '_blank');
myTimer ();
 
function myTimer ()
   {
   var w = o.value.split ('Wait ') [1],
       t = 60 * parseInt (w) - 1 + ((w.indexOf ('m. ') != -1) ? parseInt (w.split ('m. ') [1]) : 0),
       m = Math.floor (t / 60);
       s = t % 60;
   if (t) {o.value = 'Wait ' + m + 'm.' + (s ? (' ' + s + 's.') : ''); setTimeout (myTimer, 800)}
   else {o.value = 'Start'; o.disabled = 0; if (!W.closed) W.close ()}
   }
}
</script>


<input class="btn btn-large" type="button" id="BitcoinBtn1" value="Start" onclick="BitcoinFunc1()">


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

может поможете подправить?


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