html中如何实现签到功能
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要介绍了html中如何实现签到功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html中如何实现签到功能文章都会有所收获,下面我们一起来看看吧。一些关键的地方
千家信息网最后更新 2025年11月10日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安全错误
数据库的锁怎样保障安全
ei数据库作者写法有几种
服务器互相访问
mail服务器配置表
服务器装二个版本sql
宜员网络技术有限公司介绍
指挥中心网络安全应急预案
计算机网络技术春季高考
楚雄州网络安全宣传周
软件开发公司的安全管理
林草局网络安全宣传工作总结
酷我音乐显示服务器错误怎么解决
亿速云服务器如何访问
软件开发是什么专业内容
正宗网络技术培训
网络安全超融合一体机
pubg服务器上不去
哪些职业需要网络技术
外购软件开发
wincc的数据库功能
软件开发相关的国家标准
宝山区网络软件开发定制介绍
龙华周边软件开发招聘信息
网络安全工程师的项目实例
如何配置刀片服务器
软件开发企业长城集团
fifaol4tb数据库
天津手机软件开发方案
查看服务器mysql
wincc的数据库功能
plum分布式数据库