Скрипт за обратно броене

HunteR

Super Moderator
Така ето този скрипт:
Код:
<script type="text/javascript"> 
         var minute = 60; 
         var hour = minute * 60; 
         var obj = null; 
          
         function toFixFormat(sender) 
         { 
            return (sender < 10) ? '0' + sender : sender; 
         } 
          
         function calculateTime(phpTime) 
         { 
            var curTime = phpTime; 
            var hours = Math.floor(curTime / hour); 
            if (hours < 0) 
            { 
               obj.innerHTML = '<a href="?">Готово</a>'; 
               return; 
            } 
            curTime -= hours * hour; 
             
            var minutes = Math.floor(curTime / minute); 
               curTime -= minutes * minute; 
            var seconds = Math.floor(curTime); 
             
            obj.innerHTML = 
               toFixFormat(hours) 
               + ':' + toFixFormat(minutes) 
               + ':' + toFixFormat(seconds); 
                
            setTimeout('calculateTime("'+(phpTime - 1)+'")', 1000); 
         } 
          
         window.onload = function() 
         { 
            obj = document.getElementById('vreme_1'); 
            calculateTime(3000); 
         } 
      </script>
и този:
Код:
<script type="text/javascript"> 
         var minute = 60; 
         var hour = minute * 60; 
         var obj = null; 
          
         function toFixFormat(sender) 
         { 
            return (sender < 10) ? '0' + sender : sender; 
         } 
          
         function calculateTime(phpTime) 
         { 
            var curTime = phpTime; 
            var hours = Math.floor(curTime / hour); 
            if (hours < 0) 
            { 
               obj.innerHTML = '<a href="?">Готово</a>'; 
               return; 
            } 
            curTime -= hours * hour; 
             
            var minutes = Math.floor(curTime / minute); 
               curTime -= minutes * minute; 
            var seconds = Math.floor(curTime); 
             
            obj.innerHTML = 
               toFixFormat(hours) 
               + ':' + toFixFormat(minutes) 
               + ':' + toFixFormat(seconds); 
                
            setTimeout('calculateTime("'+(phpTime - 1)+'")', 1000); 
         } 
          
         window.onload = function() 
         { 
            obj = document.getElementById('vreme_2'); 
            calculateTime(3000); 
         } 
      </script>

И сега да премина на въпроса:
Слагам този код:
<div id="vreme_1"></div><br>
<div id="vreme_2"></div>

Защо излиза само 1 време?
 
И двата кода садържат еднакви променливи ... направи във втория примерно: ПРОМЕНЛИВА2 (var minute2 = 60; var hour2 = minute2 * 60;) общо взето така трябва да стане :)
 
Ето какво ми дадоха и работи:
Код:
      <script type="text/javascript">
         var minute = 60;
         var hour = minute * 60;
         var obj1,obj2,obj3,obj4,obj5,obj6 = null;
         
         function toFixFormat(sender)
         {
            return (sender < 10) ? '0' + sender : sender;
         }
         
         function calculateTime(phpTime, obj)
         {
            var curTime = phpTime;
            var hours = Math.floor(curTime / hour);
            if (hours < 0)
            {
               obj.innerHTML = '<a href="?">Готово</a>';
               return;
            }
            curTime -= hours * hour;
             
            var minutes = Math.floor(curTime / minute);
               curTime -= minutes * minute;
            var seconds = Math.floor(curTime);
             
            obj.innerHTML =
               toFixFormat(hours)
               + ':' + toFixFormat(minutes)
               + ':' + toFixFormat(seconds);

         window.setTimeout(
            function() {
               calculateTime(phpTime - 1, obj);
            }, 1000
         );
         }
         
         window.onload = function()
         {
            obj1 = document.getElementById('vreme_1');
            obj2 = document.getElementById('vreme_2');
            obj3 = document.getElementById('vreme_3');
            obj4 = document.getElementById('vreme_4');
            obj5 = document.getElementById('vreme_5');
            obj6 = document.getElementById('vreme_6');
            calculateTime(3000,obj1);
            calculateTime(3000,obj2);
            calculateTime(3000,obj3);
            calculateTime(3000,obj4);
            calculateTime(3000,obj5);
            calculateTime(3000,obj6);
         }
      </script>
Но имам един проблем ако може да го решим заедно ще съм Ви благодарен ;)

Да кажем, че имам само тези 3 часовничета, които съм сложил, защото другите не ми трябват точно тогава.
<span id="vreme_4"></span>
<span id="vreme_5"></span>
<span id="vreme_6"></span>

Смисал първите 3 ги няма и какво се получава като заредя скрипта:
Изведнъж и тези 3 не се показват на екрана.
Защо така и ако можеш да го направиш дори само 1 часовниче да има пак да го брои ;)
Защото гледайте сега какво забелязах.
Ако сложа в body само <span id="vreme_2"></span> трябва задължително да имам и <span id="vreme_1"></span>, ако сложа в body <span id="vreme_3"></span> трябва задължително да имам първите 2, а не искам да е така. ;)
Мерси предварително!
 
Успях да се оправя :)
Един в датата ме просветна по въпроса :)
Може да заключвате или изтривате темата ;)
 
Така... не съм сигурен че работи... неразбирам много от джаваскрипт пробвай така
Код:
      <script type="text/javascript">
         var minute = 60;
         var hour = minute * 60;
         var obj4,obj5,obj6 = null;
         
         function toFixFormat(sender)
         {
            return (sender < 10) ? '0' + sender : sender;
         }
         
         function calculateTime(phpTime, obj)
         {
            var curTime = phpTime;
            var hours = Math.floor(curTime / hour);
            if (hours < 0)
            {
               obj.innerHTML = '<a href="?">Готово</a>';
               return;
            }
            curTime -= hours * hour;
             
            var minutes = Math.floor(curTime / minute);
               curTime -= minutes * minute;
            var seconds = Math.floor(curTime);
             
            obj.innerHTML =
               toFixFormat(hours)
               + ':' + toFixFormat(minutes)
               + ':' + toFixFormat(seconds);

         window.setTimeout(
            function() {
               calculateTime(phpTime - 1, obj);
            }, 1000
         );
         }
         
         window.onload = function()
         {
            obj4 = document.getElementById('vreme_4');
            obj5 = document.getElementById('vreme_5');
            obj6 = document.getElementById('vreme_6');
            calculateTime(3000,obj4);
            calculateTime(3000,obj5);
            calculateTime(3000,obj6);
         }
      </script>
 
Malfurion каза:
Така... не съм сигурен че работи... неразбирам много от джаваскрипт пробвай така
Код:
      <script type="text/javascript">
         var minute = 60;
         var hour = minute * 60;
         var obj4,obj5,obj6 = null;
         
         function toFixFormat(sender)
         {
            return (sender < 10) ? '0' + sender : sender;
         }
         
         function calculateTime(phpTime, obj)
         {
            var curTime = phpTime;
            var hours = Math.floor(curTime / hour);
            if (hours < 0)
            {
               obj.innerHTML = '<a href="?">Готово</a>';
               return;
            }
            curTime -= hours * hour;
             
            var minutes = Math.floor(curTime / minute);
               curTime -= minutes * minute;
            var seconds = Math.floor(curTime);
             
            obj.innerHTML =
               toFixFormat(hours)
               + ':' + toFixFormat(minutes)
               + ':' + toFixFormat(seconds);

         window.setTimeout(
            function() {
               calculateTime(phpTime - 1, obj);
            }, 1000
         );
         }
         
         window.onload = function()
         {
            obj4 = document.getElementById('vreme_4');
            obj5 = document.getElementById('vreme_5');
            obj6 = document.getElementById('vreme_6');
            calculateTime(3000,obj4);
            calculateTime(3000,obj5);
            calculateTime(3000,obj6);
         }
      </script>
Да така ще работи, но ти си премахнал просто първите 3.
Аз казах, че в зависимост от ситуацията трябва да ги има и трябва да ги няма.
И както казах в по-предния си пост вече си реших проблема.
И как стана това:
Еми с пхп.Значи проверявах дали някоя от тези стойности става въпрос за obj4 = document.getElementById('vreme_4'); ми трябва и ако ми трябва да я слага ако не да не я слага така и за другите ;)
 

Back
Горе