业务实现(倒计时,搜索防抖,触底)

倒计时

// 倒计时函数
let time = null;
function countTime() {
    //获取当前时间  
    let now = (new Date()).getTime();
    //设置截止时间  
    let end = (new Date("2023-12-11 23:59:59")).getTime();
    //时间差  
    let leftTime = end - now;
    //定义变量 d,h,m,s保存倒计时的时间  
    let d, h, m, s;
    if (leftTime >= 0) {
        d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
        h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
        m = Math.floor(leftTime / 1000 / 60 % 60);
        s = Math.floor(leftTime / 1000 % 60);
    }
    //将倒计时赋值到div中
    if (leftTime > 0) {
        $('.header .time').text(`倒计时:
        ${d < 10 ? "0" + d : d}${h < 10 ? "0" + h : h} :
        ${m < 10 ? "0" + m : m} : 
        ${s < 10 ? "0" + s : s}`);
    } else if (leftTime <= 0) {
        console.log('倒计时结束');
        clearInterval(time);
    }
    //递归每秒调用countTime方法,显示动态时间效果  
    time = setTimeout(countTime, 1000);
}

搜索防抖

    <input class="ipt_user_id" type="text" 
    	onkeyup="this.value=this.value.replace(/\D/g,'')"
        onafterpaste="this.value=this.value.replace(/\D/g,'')" 
        id="ipt_user_id" placeholder="Search by agency ID" />

// 监听输入框
let timeout = null;
$("#ipt_user_id").on("input", function () {
  agencyId = $("#ipt_user_id").val().trim();
  if (timeout !== null) {
    clearTimeout(timeout);
  }
  timeout = setTimeout(() => {
    timeout = null;
    pageNo = 1;
    getData("", agencyId);
  }, 700);
});

页面触底

//监听页面触底
$(window).scroll(function () {
  if ($(this).scrollTop() + $(this).height() >= $(document).height() -5) {
    if (pageSize * pageNo < total) {
      pageNo++;
      getData();
    } else {
      toastMsg("No more~");
    }
  }
});

设置盒子高度为页面剩余高度

 // 初始化ul高度
function init() {
  let clientHeight = document.documentElement.clientHeight;
  //outerHeight(true)--包含padding + border + element + margin
  let headerBg = $(".headerBg").outerHeight(true);
  let mine = $(".mine").outerHeight(true);
  let ulHei = clientHeight - headerBg - mine + "px";
  $("ul").css("height", ulHei);
}

显示当前时区时间

        getTimeFun() {
            let time = new Date();
            // 获取本地时区
            let localZone = new Date().getTimezoneOffset() / -60;
            // 获取本地时间很utc时间偏移量
            let offsetTime = new Date().getTimezoneOffset() * 60 * 1000;
            // 本地时间+时间偏移量 = 格林威治时间
            let utcTime = time.getTime() + offsetTime;
            // 根据格林威治(utc)时间+当前时区得到当前时区的时间
            this.localTime = utcTime + localZone * 60 * 60 * 1000;
            this.localTime = 'GMT+' + localZone + this.formatDate(this.localTime);
        },
        formatDate(value) {
            let date = new Date(value);
            let y = date.getFullYear();
            let MM = date.getMonth() + 1;
            MM = MM < 10 ? '0' + MM : MM;
            let d = date.getDate();
            d = d < 10 ? '0' + d : d;
            let h = date.getHours();
            h = h < 10 ? '0' + h : h;
            let m = date.getMinutes();
            m = m < 10 ? '0' + m : m;
            let s = date.getSeconds();
            s = s < 10 ? '0' + s : s;
            return ` ${y}-${MM}-${d} ${h}:${m}`;
        }
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值