2014-10-30 1 views
0

У меня есть обратный отсчет для сайта аукциона. В конце аукциона я хочу отобразить «один раз». «дважды» и «окончательный звонок», как настоящий аукцион. Этот код отображает «собирается один раз» на втором = 3, «собирается дважды в второй = 2, и» Последний вызов»на втором = 1.Если секунда = 1, остановка обратного отсчета в течение 3 секунд, переход ко второй = 0

if(hours == "00" && minutes == "00") 
      { 

       if(seconds < 50) { 

         var color = thisDiv.css("background-color"); 
         thisDiv.animate({color:"red"}, 'fast'); 
         thisDiv.animate({color: "black"},'fast') ; 

         } 

         if(seconds == 3) 
         { 
          $(this).html("Going once!");  
         } 

         if(seconds == 2) 
         { 
          $(this).html("Going twice!"); 
         } 
         if(seconds == 1) 
         { 
          $(this).html("Final call!");  
         } 

         if(seconds == 0) 
         { 
          //$('.auction-current-time').countdown('destroy'); 
          //$('.auction-current-time2').html("Auction Ended"); 
          $(this).html("GONE!"); 
          $(".mm_bid_mm").hide(); 
          //alert("asd");  
         } 
      } 

Я хотел бы изменить этот код, чтобы отобразить„собирается один раз“ , «дважды» и «окончательный вызов» только до второго = 0, каждый должен отображаться 1 с.

Я понятия не имею, как это сделать.

Благодарим вас за помощь и предложения.

+0

Является ли это для эффекта или пользователь может вмешиваться в последний момент и начале последнего предложения сбросить тайм-аут? – ne2dmar

+0

Что делает ваш код в настоящее время? Похоже, вам нужно запускать метод каждую секунду? Вы пробовали 'setInterval' или' setTimeout'? – h2ooooooo

+0

Если этот код функции не вызывается каждую секунду. Вероятно, он ничего не сделает прямо сейчас. Обеспечьте полную функцию. Где инициализируются 'часы'' минуты' и 'секунды' и что? Кроме того, нет ничего, что увеличивает или уменьшает «секунды» – AbdulG

ответ

0

Я сделал быстрый макете из отсчитывать часы, используя примерно то, что вы здесь: http://jsfiddle.net/uqxn2jhr/

var countDownClock = function (hours, minutes, seconds) { 
    var clock = $('[data-countdown="clock"]'); 
    var time = $('[data-countdown="time"]'); 
    var quick = $('[data-countdown="quick"]'); 

    time.html(
    ((hours < 10) ? '0' : '') + hours + ':' + ((minutes < 10) ? '0' : '') + minutes + ':' + ((seconds < 10) ? '0' : '') + seconds); 

    if (hours === 0 && minutes === 0) { 
     if (seconds == 3) { 
      quick.html("Going once!"); 
     } 

     if (seconds == 2) { 
      quick.html("Going twice!"); 
     } 
     if (seconds == 1) { 
      quick.html("Final call!"); 
     } 

     if (seconds == 0) { 
      //$('.auction-current-time').countdown('destroy'); 
      //$('.auction-current-time2').html("Auction Ended"); 
      quick.html("GONE!"); 
      //$(".mm_bid_mm").hide(); 
      //alert("asd");  
     } 
    } 
} 

var beginCountDown = function (hours, minutes, seconds) { 
    var countDown = setInterval(function() { 
     seconds = seconds - 1; 
     console.log(seconds); 
     if (seconds < 0 && (minutes > 0 || hours > 0)) { 
      //reset seconds and reduce hours/minutes 
     } 

     if (seconds >= 0) { 
      countDownClock(hours, minutes, seconds); 
     } else { 
      clearInterval(countDown); 
      countDown = null; 
     } 
    }, 1000); 
}; 
beginCountDown(0, 0, 10); 

ли это поможет разобраться с проблемой?

0

Спасибо, за ваши ответы, я хотел бы что-то больше, как это:

if(seconds == 4) 
        { 
         //$(this).html("Going once!"); 
        } 
        if(seconds == 3) 
        { 
         //$(this).html("Going twice!"); 
        } 

        if(seconds == 2) 
        { 
         //$(this).html("Final call!"); 
        } 
        if(seconds == 1) 
        { 
         $('#box1').delay(1800).show('slow').promise() 
        .then(function(){ return $('#box2').delay(1800).show('slow').promise(); }).then(function(){ return $('#box2').delay(1800).hide('slow').promise(); }).then(function(){ 
return $('#box3').delay(1800).show('slow').promise(); }).then(function(){ 
return $('#box3').delay(1800).hide('slow').promise(); }); 
        } 
        if(seconds == 0) 
        { 
        $(this).html("Bidding ended!"); 
        } 

Я хотел бы добавить 1s, когда я показываю # box1, то 1s, когда я показываю # BOX2 и т.д. Я не уверен, если это возможно ... спасибо

Я использую query.countdown.js (http://keith-wood.name/countdown.html)