js倒计时刷新页面不受影响

JS倒计时(无视页面刷新)使用localStorage

<html>
<head>
<title>JS倒计时(无视页面刷新)使用localStorage</title>
 
<style>
.disabled {
    background: #fff;
    color: #ccc;
    border: solid 0px;
}
.disabled:hover {
     background:none;
      color: #ccc;
}
</style>
</head>
<body>
 
<input type="tel" placeholder="请输入手机号" name="Phone">
<a class="fasong" id="btnSend" style="cursor:pointer;">发送验证码</a>
</body>
 
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script language="javascript">
 
$(function () {
  //点击发送验证码
    $('body').on('click', '#btnSend', function () {
          $('body').off('click', '#btnSend');
          LockButton('#btnSend', 60);
      })
       
    //读取localStorage
    var djsendtime = localStorage.getItem("djsendtime");
    if (djsendtime != undefined && !isNaN(djsendtime)) {  
        var now = new Date().getTime();  //当前时间戳
        var locksecends = parseInt((djsendtime - now) / 1000);
        if (locksecends <= 0) {
            localStorage.removeItem("djsendtime", null);
        } else {
            LockButton('#btnSend', locksecends);
        }
    }
  
})
 
// 按钮倒计时
var LockButton = function (btnObjId, locksecends) {
    //1.获取当前系统时间
    //2.获取 locksecends 后的系统时间
    //3.用 localStorage 保存到期时间
    //4.每次加载后获取 localStorage中保存的时间
    //5.用到期时间减去当前时间获取倒计时
    var djsendtime = localStorage.getItem("djsendtime")
    if (djsendtime == null || djsendtime == undefined || djsendtime == 'undefined' || djsendtime == 'null') {
        var now = new Date().getTime();  //当前时间戳
        var endtime = locksecends * 1000 + now;  //结束时间戳
        localStorage.setItem("djsendtime", endtime); //将结束时间保存到cookie
    }
    $(btnObjId).addClass('disabled').attr('disabled', 'disabled').text('(' + locksecends + ')秒后重新获取');
    $('body').off('click', '#btnSendSMS');
    var timer = setInterval(function () {
        locksecends--;
        $(btnObjId).text('(' + locksecends + ')秒后重新获取');
        if (locksecends <= 0) {
            //倒计时结束清除 localStorage值
            localStorage.removeItem("djsendtime", null);
            $(btnObjId).removeClass('disabled').removeAttr('disabled').text('重新获取');
            $('body').on('click', btnObjId);
            clearInterval(timer);
        }
    }, 1000);
};
</script>
 
</html>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值