像这样的一个月历实现思路是什么?table就用了一个,而且会随着每月1号或月底的日子来增减tr数目。这该如何实现?而且在某些日子下还有文本,并且点击之后还会根据点击的文本来作此相关的数学计算,请问这是如何实现的?
这是原网站链接http://m.fxtrip.com/product/details/id/78559718&
认证0级讲师
布局使用flex,简单方便;里面月份的实现,就要好好看看JavaScript的日期了,之前做过。其实现在你主要要解决的是有几点:1:判断某年某月有多少天(涉及闰年,这样一来,就知道循环的条件天数);2:判断某月的第一天是星期几(这样一来就知道第一天在哪个);解决上面两个问题就可以循环生成数据信息。再说一句:这个按月的日历,其实实现简单,因为一年就十二个月,不管你是下拉选择月份还是输入月份,最大就是12;之前我们遇到一个变态需求,让日历不是呈月份显示,而是四周四周显示,这样一来,上月和下月必有交点,上年和下年必有交点,这才比你这个复杂。
之前做过一个日历,关键在于二月份的天数:
function getFebruary(year) { //返回二月天数 return (year%100==0) ? (year%400==0?29:28) : (year%4==0?29:28); } //当前年份下每月的天数 var monthL = [31,getFebruary(curYear),31,30,31,30,31,31,30,31,30,31];
获取当前年份当前月份第一天的星期。比如这个月第一天是星期四,这个月有31天,使用p,p加样式float: left;,使用循环先排出4天,p(星期日、一、二、三)里面不填数字,因为这个月第一天是星期四。然后再使用循环在p里填出1-31日。
p
float: left;
设置好每个p和日历总的宽度,每一行排满以后它会自动排第二行。
布局使用flex,简单方便;里面月份的实现,就要好好看看JavaScript的日期了,之前做过。
其实现在你主要要解决的是有几点:
1:判断某年某月有多少天(涉及闰年,这样一来,就知道循环的条件天数);
2:判断某月的第一天是星期几(这样一来就知道第一天在哪个);
解决上面两个问题就可以循环生成数据信息。
再说一句:这个按月的日历,其实实现简单,因为一年就十二个月,不管你是下拉选择月份还是输入月份,最大就是12;之前我们遇到一个变态需求,让日历不是呈月份显示,而是四周四周显示,这样一来,上月和下月必有交点,上年和下年必有交点,这才比你这个复杂。
之前做过一个日历,关键在于二月份的天数:
获取当前年份当前月份第一天的星期。比如这个月第一天是星期四,这个月有31天,使用
p
,p
加样式float: left;
,使用循环先排出4天,p(星期日、一、二、三)里面不填数字,因为这个月第一天是星期四。然后再使用循环在p里填出1-31日。设置好每个
p
和日历总的宽度,每一行排满以后它会自动排第二行。