您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎么在小程序中實(shí)現(xiàn)一個(gè)橫向滑動(dòng)日歷效果,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
具體內(nèi)容如下
<scroll-view class="scroll-view_H" scroll-x> <view class='list' style='width:{{ width }}rpx'> <view bindtap="select" wx:for="{{ calendar }}" wx:key="" wx:for-item="item" wx:for-index="index" data-index="{{ index }}" class='listItem {{index==currentIndex? "current":""}}'> <text class='name'>{{ item.week }}</text> <text class='date'>{{ item.date }}</text> </view> </view> </scroll-view>
js:
function getThisMonthDays(year, month) { return new Date(year, month, 0).getDate(); } // 計(jì)算每月第一天是星期幾 function getFirstDayOfWeek(year, month) { return new Date(Date.UTC(year, month - 1, 1)).getDay(); } const date = new Date(); const cur_year = date.getFullYear(); const cur_month = date.getMonth() + 1; const cur_date = date.getDate(); const weeks_ch = ['日', '一', '二', '三', '四', '五', '六']; //利用構(gòu)造函數(shù)創(chuàng)建對(duì)象 function calendar(date, week) { this.date = cur_year + '-' + cur_month + '-' + date; if (date == cur_date) { this.week = "今天"; } else if (date == cur_date + 1) { this.week = "明天"; } else { this.week = '星期' + week; } } //當(dāng)前月份的天數(shù) var monthLength = getThisMonthDays(cur_year, cur_month) //當(dāng)前月份的第一天是星期幾 var week = getFirstDayOfWeek(cur_year, cur_month) var x = week; for (var i = 1; i <= monthLength; i++) { //當(dāng)循環(huán)完一周后,初始化再次循環(huán) if (x > 6) { x = 0; } //利用構(gòu)造函數(shù)創(chuàng)建對(duì)象 that.data.calendar[i] = new calendar(i, [weeks_ch[x]][0]) x++; } //限制要渲染的日歷數(shù)據(jù)天數(shù)為7天以內(nèi)(用戶體驗(yàn)) var flag = that.data.calendar.splice(cur_date, that.data.calendar.length - cur_date <= 7 ? that.data.calendar.length : 7) that.setData({ calendar: flag }) selectd = flag; // console.log(selectd); var ret_id = []; const lengths = selectd.length for (let i = 0; i < lengths; i++) { ret_id[i] = selectd[i].date; } choosedate = ret_id[0]; //設(shè)置scroll-view的子容器的寬度 that.setData({ width: 186 * parseInt(that.data.calendar.length - cur_date <= 7 ? that.data.calendar.length : 7) })
CSS:
/*日歷開(kāi)始 */ scroll-view{ height: 128rpx; width: 101%; position:fixed; top:355rpx; } scroll-view .list{ display: flex; flex-wrap: nowrap; justify-content: flex-start; } scroll-view .listItem{ text-align: center; width:187rpx; height: 128rpx; background: #f4f4f4; padding-top: 30rpx; box-sizing: border-box; display: inline-block; } scroll-view .listItem text{ display: block; } scroll-view .listItem .name{ font-size: 25rpx; } scroll-view .listItem .date{ font-size: 25rpx; } scroll-view .current{ background-color:pink; width:200rpx; position:relative; } scroll-view .current text{ color: #fff; }
看完上述內(nèi)容,你們對(duì)怎么在小程序中實(shí)現(xiàn)一個(gè)橫向滑動(dòng)日歷效果有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。