前端:自制年历

详细思路可以看我的另一篇文章《前端:自制月历》,基本思路一致,只是元素布局略有差异

①获取起始位start=new Date(moment().format('yyyy-01-01')).getDay()

②获取总的格子数num=Math.ceil(365/7)*7,这里用365或者366计算结果都是一样的371

③获取数据,假设年份是YYYY

handleGetDate(){

let dateArr=\[\],time=moment().format('yyyy-01-01')

for(let i=0;i<num;i++){

if(i < start || time > moment( YYYY+ '-12').endOf('month').format('yyyy-MM-DD')){

dateArr.push(0)

}

else{ dateArr.push(time);time=moment(time).add(1,'days').format('yyyy-MM-DD') }

}

}

⑤视图绑定数据

<div class="calendar">

<header>

<span>1月</span><span>2月</span><span>3月</span><span>4月</span><span>5月</span><span>6月</span><span>7月</span><span>8月</span><span>9月</span><span>10月</span><span>11月</span><span>12月</span>

</header>

<section>

<span>日</span><span>一</span><span>二</span><span>三</span><span>四</span><span>五</span><span>六</span>

<span v-for="item,index in data.dateArr" :key="item+''+index">

<div v-if="item!= 0">{{ item }}</div>

</span>

</section>

</div>

⑥根据项目需求调整样式

section{

display:flex;flex-direction:column;flex-wrap:wrap;height:140px;

span{

height:20px;width:20px;

}

}

这是在某个项目中实现的效果:

相关推荐
杉氧6 小时前
RN 性能调优指南:重渲染(Re-renders)控制与长列表(FlatList)优化
android·前端·react native
一_个前端6 小时前
[JS] 一站式搞定 PDF、图片、Dom弹窗、表格的浏览器打印功能
前端
JavaGuide7 小时前
阿里 Qoder 又开源了一个专门给 Claude Code、Codex 做“体检”的项目
前端·后端
三小河7 小时前
RAG、LLM Wiki、本体(Ontology)到底是个啥?
前端·人工智能·后端
大模型码小白7 小时前
数据可视化:AI 生成 HTML5 动态交互式数据图表
前端·数据库·人工智能·深度学习·机器学习·信息可视化·html5
八荒启·交互动画7 小时前
Web特效01—什么是渲染
前端·javascript·网页特效·八荒启-交互动画
小肥君7 小时前
前端测试websocket
前端·websocket·状态模式
南京兴帝文化传媒有限公司7 小时前
基于地图平台的本地商户信息优化:药店夜间服务标注与客户转化实操
前端·javascript·数据库·人工智能·geo 优化·geo优化避坑·ai搜索获客
八荒启·交互动画7 小时前
Web特效04——GPUvs CPU,为什么图形计算要交给GPU,什么是“并行计算”
前端
呃呃呃呃ex8 小时前
2026年古法编程的末法时代,如何评估自己完成迅速转行
前端·后端