2017-08-22 34 views
0

下面的函數能否輕易轉換成jQuery?JS倒計時腳本到jQuery

並保留調用倒計時多個實例的能力嗎?

該函數獲取服務器回顯的服務器時間,然後倒計時到指定的日期。

CountDownTimer('08/19/2018 10:01 AM', 'countdown'); 
CountDownTimer('08/20/2017 10:01 AM', 'newcountdown'); 
var serverTime = new Date('08/08/2017 12:01 AM'); // server time is echoed here 
var clientTime = new Date(); 
var offset = serverTime-clientTime; 
console.log(serverTime,clientTime,offset) 
function CountDownTimer(dt, id) { 
    var end = new Date(dt); 

    var _second = 1000; 
    var _minute = _second * 60; 
    var _hour = _minute * 60; 
    var _day = _hour * 24; 
    var timer; 

    function showRemaining() { 
    var now = new Date(); 
    var distance = end - (now-offset); 
    if (distance < 0) { 

     clearInterval(timer); 
     document.getElementById(id).innerHTML = 'EXPIRED!'; 

     return; 
    } 
    var days = Math.floor(distance/_day); 
    var hours = Math.floor((distance % _day)/_hour); 
    var minutes = Math.floor((distance % _hour)/_minute); 
    var seconds = Math.floor((distance % _minute)/_second); 

    document.getElementById(id).innerHTML = days + 'days '; 
    document.getElementById(id).innerHTML += hours + 'hrs '; 
    document.getElementById(id).innerHTML += minutes + 'mins '; 
    document.getElementById(id).innerHTML += seconds + 'secs'; 
    } 

    timer = setInterval(showRemaining, 1000); 
} 
+2

您是否嘗試自己寫點東西? – Dekel

+0

根據你對jQuery的期望,你可以。閱讀文檔:https://api.jquery.com/ –

+0

唯一可以改變的是'$(「#'+ id).html(days +'days)的'document.getElementById(id).innerHTML' ')... *(和另外3個人)*這樣做沒有什麼大的附加價值 –

回答

0

在這裏,你去。顯然,沒有太多改變!只能使用jQuery按ID查找元素。

CountDownTimer('08/19/2018 10:01 AM', 'countdown'); 
CountDownTimer('08/20/2017 10:01 AM', 'newcountdown'); 
var serverTime = new Date('08/08/2017 12:01 AM'); // server time is echoed here 
var clientTime = new Date(); 
var offset = serverTime-clientTime; 
console.log(serverTime,clientTime,offset) 

function CountDownTimer(dt, id) { 
    var end = new Date(dt); 

    var _second = 1000; 
    var _minute = _second * 60; 
    var _hour = _minute * 60; 
    var _day = _hour * 24; 
    var timer; 

    function showRemaining() { 
    var now = new Date(); 
    var distance = end - (now-offset); 
    var $el = $("#" + id); 

    if (distance < 0) { 
     clearInterval(timer); 
     $el.text("EXPIRED!"); 

     return; 
    } 
    var days = Math.floor(distance/_day); 
    var hours = Math.floor((distance % _day)/_hour); 
    var minutes = Math.floor((distance % _hour)/_minute); 
    var seconds = Math.floor((distance % _minute)/_second); 

    $el.text(days + 'days ' + hours + 'hrs ' + minutes + 'mins ' + seconds + 'secs'); 
    } 

    timer = setInterval(showRemaining, 1000); 
} 
+0

當頁面加載時,它需要腳本啓動一段時間,有什麼方法可以消除這種延遲? – Borsn