「CSS畅想」周期性事情怕忘,来看看一个月内都安排在哪天

简介: 前端玩转CSS,可以创造出不少有趣的效果。今天实现了一个周期性日期获取功能,小功能大用处。

前言

中午吃饭时,想起来自己又忘记打卡了,积分又要从头来过了。

如果设置日程提醒,三天一次,一个月大概要设置10个提醒,有点啰里啰嗦的。

于是我开始思考,周期性的事情,怎么设置提醒比较好呢?如果我只需要输入一个日期就能知道这一个月的时间安排,即便不再手机上设置提醒,也能知道哪些时间需要去做这件事,即简单又省力。又是被自己智慧折服的一天。

在线效果

完整代码已经放到了在线预览平台,在线进行代码效果的即时预览。


功能介绍

功能点

支持程度

备注

是否支持输入

是否支持一个月为一个周期

是否支持维度输入

待开发

是否支持跨月

是否列出所有的日期

是否支持日历格式回显

待开发

是否允许输入小于1的值

给出提示

是否允许输入大于当前月的总天数的值

给出提示

注:

1.目前不支持跨月,但是有一种情况可以展示第二个月日期,就是(输入的值+3)大于当前月的总天数时可以展示到下个月的某一天。

功能设计

输入日期

  • 日期输入采用的数值类型输入;’通过input输入框的 type属性实现数值输入功能,当type="number"时,可以限制输入内容只能是数值类型。
  • 输入框前面展示了当前年月的前缀。
<inputclass="input-item"type="number"name="day"max="31"min="1"step="1"id="inputItem"/>

日期计算

平时计算日期基本靠数手指头,但是码代码就不一样了,可以靠代码完成计算。

  • 一个月为一个周期,3天为一个维度;
  • 该周期内可能有一个或者多个值,也可能没有值,需要转到下一个月,所以分成两种不同的情况处理。
  • 当前周期没有获得值的情况是(输入的值+维度)大于当前月的总天数,这种情况下需要算出下个月的第一个日期。
  • 当前周期可以获得值,将所有的值重组成日期的格式进行回显。

没有获得值

// 跨月处理if (Number(inputVal) +3>monthDayNum) {
letmoreNum=Number(inputVal) +3-Number(monthDayNum);
letmoreVal=year+'-'+ (monthShow+1) +'-'+moreNum;
dateListAll.push(moreVal);
}

可以获得值

letdiffNum= (monthDayNum-Number(inputVal)) /3;
letintegerNum=Math.trunc(diffNum);
for (vari=1; i<=integerNum; i++) {
letintegetStep=i*3+Number(inputVal);
letintegetStepVal=year+'-'+ (monthShow+1) +'-'+integetStep;
dateListAll.push(integetStepVal);
}

日期回显

  • 获取所有的日期之后,循环回显在虚线框里,方便查看。

日历功能

未完待续功能。

完整的功能设计是展示日历,将所有的日期进行高亮显示。但是原生写代码量还有点多,所以周末好好设计一下实现方式。大致思路已经有了。

  • 展示使用table实现,每行7列,一共6行就能完整展示一个月的日期。
  • 高亮功能通过单元格id增加class样式,id的值是日期的完整值,比如'2022-07-22'。

敬请期待~

总结

有时候很日常的事情,也可以通过有趣的方式实现,比如用画笔,比如用代码。

小功能,大能量。刚才输入了日期,确定了这个月所有需要日期,截图贴在了微信里面做备忘,瞬间来了安全感。

目录
相关文章
|
前端开发 JavaScript 容器
【CSS畅想】萤星漫舞,我用CSS绘制了一个属于夏日的回忆
用技术实现梦想,用梦想打开创意之门。萤星漫舞,我用CSS绘制了一个属于夏日的回忆
197 1
|
前端开发 算法 JavaScript
【CSS畅想】宅家必备,我用CSS复刻了一个游戏机
用技术实现梦想,用梦想打开创意之门。宅家必备,我用CSS复刻了一个游戏机。
116 1
|
前端开发 JavaScript UED
「CSS畅想」何以解忧,美食足矣,用技术给好友开发了一个零食盲盒小游戏
前端技术从业者与非技术好友互动,用技术给好友开发了一个零食盲盒小游戏
199 1
|
前端开发 容器
「CSS畅想」好友想回忆童年,安排~为她做了一个果宝特攻的换装
端技术从业者与非技术好友互动,好友想回忆童年,我为她用CSS技术做了一个果宝特攻的换装
142 1
|
前端开发 容器
「CSS畅想」技术传递乐趣,好友想玩游戏机,我为她画了一个套圈水机
前端技术从业者与非技术好友互动,好友想玩游戏机,我为她画了一个套圈水机。
137 1
|
前端开发
「CSS畅想」技术传递乐趣,好友说她想要七龙珠,我帮她召唤了神龙
前端技术从业者与非技术好友互动,好友说她想要七龙珠,我帮她召唤了神龙。
103 1
|
前端开发 索引
「CSS畅想」技术传递乐趣,送给好友的解答之书
前端技术从业者与非技术好友互动第三弹,我给好友写了一本解答之书,特意为好友隐藏了一个彩蛋。
64 1
|
4天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
4天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
4天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。