html中如何实现签到功能
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了html中如何实现签到功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html中如何实现签到功能文章都会有所收获,下面我们一起来看看吧。一些关键的地方
千家信息网最后更新 2026年11月01日html中如何实现签到功能
这篇文章主要介绍了html中如何实现签到功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html中如何实现签到功能文章都会有所收获,下面我们一起来看看吧。
一些关键的地方
这个功能的编写思路是,先构建日期和签到相关数据,然后从服务端获取数据,并对原有数据进行更改,最后进行渲染。
这样子很好的摆脱了逻辑比较凌乱的问题,并且可以直接将这些数据用 vue.js 来挂载(本文没有这样做)。
生成日期数据
//生成日期数据 function buildData() { var da = { dates: [],//日期数据,从1号开始 current: '',//当前日期 monthFirst: 1,//获取当月的1日等于星期几 month: 0,//当前月份 days: 30,//当前月份共有多少天 day: 0,//今天几号了 isSigned: false,//今天是否已经签到 signLastDays:3,//连续签到日子 signToday: function () { this.isSigned = true; this.dates[this.day].isSigned = true; }, }; var ds = []; //初始化日期数据 var dt = new Date(); da.current = dt.ToString('yyyy年M月d日'); da.monthFirst = new Date(dt.getFullYear(), dt.getMonth(), 1).getDay(); da.month = dt.getMonth() + 1; da.days = new Date(dt.getFullYear(), parseInt(da.month), 0).getDate();//获取当前月的天数 da.day = dt.getDate(); for (var i = 1; i < da.days + 1; i++) { var o = { isSigned: false,//是否签到了 num: i,//日期 isToday: i == da.day,//是否今天 isPass: i < da.day,//时间已过去 }; ds[i] = o; } da.dates = ds; return da; }有了数据之后,就可以将数据转换为界面了
//渲染数据 function renderData(da) { var signDays = document.getElementById('spSignDays'); signDays.innerText = da.signLastDays; var root = document.getElementById("signTable"); root[xss_clean] = ''; var tr, td; var st = da.monthFirst; var dates = da.dates; var rowcount = 0; //最多6行 for (var i = 0; i < 42; i++) { if (i % 7 == 0) { //如果没有日期了,中断 if (i > (st + da.days)) break; tr = document.createElement('tr'); tr.className = 'darkcolor trb'; root.appendChild(tr); rowcount++; } //前面或后面的空白 if (i < st || !dates[i - st + 1]) { td = document.createElement('td'); td[xss_clean] = ''; tr.appendChild(td); continue; } //填充数字部分 var d = dates[i - st + 1]; td = document.createElement('td'); var tdcss = ''; if (d.isToday) tdcss = 'sign-today'; else if (d.isPass) tdcss = 'sign-pass'; else tdcss = 'sign-future'; if (d.isSigned) { tdcss = 'sign-signed ' + tdcss; td[xss_clean] = '' + d.num + ''; } else { tdcss = 'sign-unsign ' + tdcss; td[xss_clean] = '' + d.num + ''; } tr.appendChild(td); } //计算是否需要添加最后一行 if ((st + da.days + 1) / 7 > rowcount) root.appendChild(tr); } //构建日期数据 var da = buildData(); //渲染 renderData(da);关于"html中如何实现签到功能"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"html中如何实现签到功能"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
数据
日期
功能
知识
内容
月份
篇文章
生成
凌乱
一行
价值
关键
地方
天数
思路
操作简单
数字
文章
日子
时间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
西安纸贵互联网科技有限公司
互联网科技工作委员会毛军
互联网和科技创新
互联网与科技发展
互联网公司 科技公司
互联网科技的英文
小马过河互联网科技
科技互联网公司logo
互联网科技公司介绍
互联网科技咨询
哈尔滨秒房互联网科技有限公司
科技赋能互联网健康
隆华科技工业互联网
南山科技园互联网公司有哪些
为客找房互联网科技公司怎么样
互联网科技圈年度人物
山东子淼互联网科技有限公司
互联网科技快讯热点
版纳互联网科技选哪家
福仕德教育科技互联网
互联网科技公司经营范围
互联网科技ppt模板
米客互联网科技
互联网高科技企业
茂名市互联网科技产业园
佳云科技和互联网广告
互联网对科技的发展
北京市互联网新科技
易企秀互联网科技是做什么的
互联网科技对化妆品行业