javascript - 每日 javascript 倒计时缩短为 jquery

标签 javascript jquery

找到这个每日倒数计时器并对其进行了一些编辑,但我发现它有点长,并且了解到 Jquery 是 javascript 的一种较短的表示法,但对此一无所知。

我的知识不够先进,无法缩短它或将其更改为 jquery。

我使用 <body onload = "getSeconds()">开始每日倒计时。

var reloadPage = false;
function getSeconds()
{
    var now = new Date();
    var time = now.getTime(); // time now in milliseconds
    var midnight = new Date(now.getFullYear(),now.getMonth(),now.getDate(),21,57,0); //midnight 0000 hrs
    //midnight - change time hh,mm,ss to whatever time required, e.g. 7,50,0 (0750)
    var ft = midnight.getTime() + 86400000; // add one day 86 400 000
    var diff = ft - time;
    diff = parseInt(diff/1000);
    if (diff > 86400) {diff = diff - 86400}
    startTimer (diff);
}

var timeInSecs;
var ticker;

function startTimer(secs){
    timeInSecs = parseInt(secs);
    ticker = setInterval("tick()",1000); 
    tick(); //to start counter display right away
}

function tick() {
    var secs = timeInSecs;
    if (secs > 0) {
        timeInSecs--;
    }
    else
    {
    clearInterval(ticker); //stop counting at zero
    if (secs == 0)
    {
        reloadPage = true;
        console.log("reset");
    };
    getSeconds();  //and start again if required
}

var hours= Math.floor(secs/3600);
secs %= 3600;
var mins = Math.floor(secs/60);
secs %= 60;

if(reloadPage)
{
    var result = "Please reload page for daily reset."
}
else
{
    var result = ((hours <= 0 ) ? "" : hours + " hours ") + ( (mins <= 0) ? "" : mins + " minutes " ) + ( (mins <= 0) ? " < 1 minute " : "" );
}
document.getElementById("countdown").innerHTML = "Daily reset: " + result;
}

最佳答案

这是您“更改为 jQuery”的代码

var reloadPage = false;
function getSeconds()
{
    var now = new Date();
    var time = now.getTime(); // time now in milliseconds
    var midnight = new Date(now.getFullYear(),now.getMonth(),now.getDate(),21,57,0); //midnight 0000 hrs
    //midnight - change time hh,mm,ss to whatever time required, e.g. 7,50,0 (0750)
    var ft = midnight.getTime() + 86400000; // add one day 86 400 000
    var diff = ft - time;
    diff = parseInt(diff/1000);
    if (diff > 86400) {diff = diff - 86400}
    startTimer (diff);
}

var timeInSecs;
var ticker;

function startTimer(secs){
    timeInSecs = parseInt(secs);
    ticker = setInterval("tick()",1000); 
    tick(); //to start counter display right away
}

function tick() {
    var secs = timeInSecs;
    if (secs > 0) {
        timeInSecs--;
    }
    else
    {
    clearInterval(ticker); //stop counting at zero
    if (secs == 0)
    {
        reloadPage = true;
        console.log("reset");
    };
    getSeconds();  //and start again if required
}

var hours= Math.floor(secs/3600);
secs %= 3600;
var mins = Math.floor(secs/60);
secs %= 60;

if(reloadPage)
{
    var result = "Please reload page for daily reset."
}
else
{
    var result = ((hours <= 0 ) ? "" : hours + " hours ") + ( (mins <= 0) ? "" : mins + " minutes " ) + ( (mins <= 0) ? " < 1 minute " : "" );
}
$("#countdown").html("Daily reset: " + result);
}

节省 27 个字节...我确定加载 86000+ 字节的 jQuery 库根本不会抵消这个节省

关于javascript - 每日 javascript 倒计时缩短为 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38546520/

相关文章:

javascript - 将边列表转换为 d3 中的嵌套树结构

javascript - 将 JSON ID 键插入 ng-click 指令,然后将其传递给另一个 Controller

JavaScript 方括号作为变量值

javascript - 单击时如何使某些元素突出显示?

javascript - ngRoute 传递参数不起作用

javascript - Safari 不显示 Div

javascript - jquery 脚本在 safari 中不起作用

特定网页的 javascript

jquery - 为什么 jQuery.css ('width' ) 在不同的浏览器中返回不同的值?

jquery - 数据表对隐藏列进行排序和搜索