分享者:AaronW
效果圖:

由于微信小程序特性的限制,js文件不能直接操作wxml文件,即不能進(jìn)行dom操作,所以在此創(chuàng)建組件必須先把組件結(jié)構(gòu)定義好,即在wxml文件中先定義好組件結(jié)構(gòu),然后再綁定數(shù)據(jù),根據(jù)js文件中的數(shù)據(jù)進(jìn)行動(dòng)態(tài)渲染。這里的日歷由兩部分組成,一是上部紅色,而是下面主要日歷部分。上部直接綁定數(shù)據(jù)。
下部分實(shí)現(xiàn)方式:
第一行星期的顯示,此處為固定顯示,無需js操作。然后下面的日歷body部分,由于每周七天,綁定的數(shù)據(jù)可根據(jù)此生成,根據(jù)當(dāng)前日期生成每行的數(shù)據(jù)。
日期生成:
取當(dāng)前月第一天,得到星期,計(jì)算上月在第一行的日期,如下圖紅色框中的部分:
以當(dāng)前日期為例,本月一號(hào)位周六,當(dāng)前月份可顯示上個(gè)月6天;計(jì)算當(dāng)前月(或指定月份)最后一天的星期天數(shù),取得下個(gè)月可在本月顯示日期。最后合并本月日期,并按每行七日排列,即可生成當(dāng)前月分的日歷數(shù)據(jù)。以下貼出代碼:
wxml代碼:
-
<view class="calendar" bindtap="tap">
-
<view class="calendar-panel">
-
<view class="day">{{canlender.date}}日</view>
|