欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

小程序日歷控件使用方法詳解

 更新時間:2018年12月29日 09:29:28   作者:羅忠浩  
這篇文章主要為大家詳細介紹了小程序日歷控件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

之前小程序開發(fā)需要用到日歷控件,但是關(guān)于小程序可用的實在資源有限,于是就自己寫了一個,如今項目上線后將它分享出來,希望能幫到需要的人。

效果圖:

 

JS代碼:

dateData: function () {
  let dataAll = []//總?cè)諝v數(shù)據(jù)
  let dataAll2 = []//總?cè)諝v數(shù)據(jù)
  let dataMonth = []//月日歷數(shù)據(jù)
  let date = new Date//當前日期
  let year = date.getFullYear()//當前年
  let week = date.getDay();//當天星期幾
  let weeks=[]
  let month = date.getMonth() + 1//當前月份
  let day = date.getDate()//當天
  let daysCount = 100//一共顯示多少天
  let dayscNow = 0//計數(shù)器
  let monthList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]//月份列表
  let nowMonthList=[]//本年剩余年份
  for (let i = month;i<13;i++){
   nowMonthList.push(i)
  }
  let yearList = [year]//年份最大可能
  for (let i = 0; i < daysCount/365+2;i++){
   yearList.push(year+i+1)
  }  
  let leapYear = function (Year) {//判斷是否閏年 
   if (((Year % 4) == 0) && ((Year % 100) != 0) || ((Year % 400) == 0)) {
    return (true);
   } else { return (false); }
  }
  for (let i = 0; i < yearList.length;i++){//遍歷年
   let mList
   if (yearList[i] == year){//判斷當前年份
    mList = nowMonthList
   }else{
    mList = monthList
   }
   for (let j = 0; j < mList.length;j++){//循環(huán)月份
    dataMonth=[]
    let t_days = [31, 28 + leapYear(yearList[i]), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    let t_days_thisYear=[]
    if (yearList[i] == year){
     for (let m = 0; m<nowMonthList.length;m++){
      t_days_thisYear.push(t_days[mList[m]-1])
     }
     t_days = t_days_thisYear
    } else {
     t_days = [31, 28 + leapYear(yearList[i]), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    }
    for (let k = 0; k < t_days[j];k++){//循環(huán)每天
     dayscNow++
     let nowData
     if (dayscNow < daysCount) {//如果計數(shù)器沒滿
      let days = k + 1
      if (days < 10) {
       days = "0" + days
      }
      if (yearList[i] == year && mList[j] == month){//判斷當年當月
       if (k + 1 >= day) {
        nowData = {
         year: yearList[i],
         month: mList[j],
         day: k + 1,
         date: yearList[i] + "" + mList[j] + days,
         selected: 0,
         re: yearList[i] + "-" + mList[j] + "-" + days,
        }
        dataMonth.push(nowData)
        if (k+1 == day) {
         let date = new Date(yearList[i] + "-" + mList[j] + "-" + (k + 1))
         let weekss = date.getDay()//獲取每個月第一天是周幾
         weeks.push(weekss)
        }
       }
      }      else {//其他情況
       nowData = {//組裝自己需要的數(shù)據(jù)
        year: yearList[i],
        month: mList[j],
        day: k + 1,
        date: yearList[i] + "" + mList[j] + days,
        selected: 0,
        re: yearList[i] + "-" + mList[j] + "-" + days,
       }
       dataMonth.push(nowData)
       if (k == 0) {
        let date = new Date(yearList[i] + "-" + mList[j] + "-" + k + 1)
        let weekss = date.getDay()//獲取每個月第一天是周幾
        weeks.push(weekss)
       }
      }
     }else{
      break
     }
    }
    dataAll.push(dataMonth)
   }
  }
  for (let i = 0; i < dataAll.length;i++){
   if (dataAll[i].length!=0){
    dataAll2.push(dataAll[i]);
   }
  }
  this.setData({
   date: dataAll2,
   weeks: weeks
  })
 },

以上代碼主要功能是作為數(shù)據(jù)源渲染

wxml代碼:

<view class="headbox2">
 <view class="headdate">日</view>
 <view class="headdate">一</view>
 <view class="headdate">二</view>
 <view class="headdate">三</view>
 <view class="headdate">四</view>
 <view class="headdate">五</view>
 <view class="headdate">六</view>
</view>
<view class="headbox">
 <view class="headdate">日</view>
 <view class="headdate">一</view>
 <view class="headdate">二</view>
 <view class="headdate">三</view>
 <view class="headdate">四</view>
 <view class="headdate">五</view>
 <view class="headdate">六</view>
</view>
<view class="mouth" wx:for="{{date}}" wx:for-item="date" wx:for-index="index">
 <view class="mouthhead">{{date[index].year}}年{{date[index].month}}月</view>
 <view class="daybox">
 <view class="day" wx:if="{{weeks[index]>0}}"></view>
 <view class="day" wx:if="{{weeks[index]>1}}"></view>
 <view class="day" wx:if="{{weeks[index]>2}}"></view>
 <view class="day" wx:if="{{weeks[index]>3}}"></view>
 <view class="day" wx:if="{{weeks[index]>4}}"></view>
 <view class="day" wx:if="{{weeks[index]>5}}"></view>
 <view class="day {{item.selected == 1 ? 'bc':''}}" wx:for="{{date}}" wx:for-index="idx" data-index="{{index}}" data-indexs="{{idx}}" bindtap="selectday">
  <view class="actname {{item.selected == 1 ? 'bc2':''}}">{{date[idx].act.subject}}</view>
  {{date[idx].day}}
  <view class="actname2 {{item.selected == 1 ? 'bc2':''}}" wx:if="{{date[idx].act.rate}}">{{date[idx].act.rate/10}}折</view>
 </view>
 </view>
</view>
<view class="none88" wx:if="{{pagetype=='day'}}"></view>
<view class="fixedbtn" bindtap="submitbtn" wx:if="{{pagetype=='day'}}">確認選擇</view>

將數(shù)據(jù)渲染至wxml

wxss樣式代碼:

.headdate{
 height: 30px;
 background-color: white;
 flex:1;
 text-align: center;
 line-height: 30px;
}
.headbox{
 display: flex;
 display: -webkit-flex;
 border-bottom: 1px solid #e5e5e5;
}
.headbox2{
 display: flex;
 position: fixed;
 width: 750rpx;
 display: -webkit-flex;
 border-bottom: 1px solid #e5e5e5;
 background-color: white;
 z-index: 2;
}
.mouthhead{
 height: 88rpx;
 background-color: #f4f4f4;
 width: 750rpx;
 line-height: 88rpx;
 text-align: center;
}
.mouth{
  /* background-color: white; */
 /* padding-top: 10rpx;
 padding-bottom: 10rpx; */
}
.daybox{

  background-color: white; 
  padding-top: 10rpx;
  padding-bottom: 10rpx;  

}
.day{
 width: 107rpx;
 height: 107rpx;
 line-height: 107rpx;
 text-align: center;
 display: inline-block;
 position: relative;
 top: 0;
 margin-top: -10rpx;
 overflow: hidden;
 color: #353535;
 font-size: 34rpx;
}
.day2{
 color: #04babe;
 width: 107rpx;
 height: 107rpx;
 line-height: 107rpx;
 text-align: center;
 display: inline-block;
 position: relative;
 bottom: 0;
 margin-top: 0;
}
.actname{
 color: #04babe;
 position: absolute;
 font-size: 20rpx;
 top: -30rpx;
 width: 107rpx;
 text-align: center;
}
.actname2{
 color: #04babe;
 position: absolute;
 font-size: 20rpx;
 bottom: -30rpx;
 width: 107rpx;
 text-align: center;
}
.bc{
 background-color: #04babe;
 color: white!important;
}
.bc2{
 color: white!important;
}
.none88{
 height: 88rpx;
 width: 750rpx;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript 動態(tài)修改css樣式方法匯總(四種方法)

    javascript 動態(tài)修改css樣式方法匯總(四種方法)

    為了達到某種特殊的效果我們需要用Javascript動態(tài)的去更改某一個標簽的Css屬性,如何動態(tài)修改css樣式呢?面對這個問題,小編帶領(lǐng)大家來解決javascript動態(tài)修改css樣式,小伙伴們都快來學(xué)習(xí)吧
    2015-08-08
  • JavaScript純前端實現(xiàn)在線GIF壓縮

    JavaScript純前端實現(xiàn)在線GIF壓縮

    這篇文章主要為大家詳細介紹了如何利用JavaScript純前端實現(xiàn)在線GIF壓縮工具,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 揭秘JavaScript Reduce的用法

    揭秘JavaScript Reduce的用法

    作為高級前端切圖仔,我們經(jīng)常遇到需要處理、聚合或轉(zhuǎn)換數(shù)據(jù)的場景,JavaScript 的reduce()方法是一個強大的工具,它允許我們有效地迭代數(shù)組并累積單個值,從而簡化了這些任務(wù),本文將給大家揭秘JavaScript Reduce方法,需要的朋友可以參考下
    2023-09-09
  • 微信小程序?qū)崿F(xiàn)一個自定義遮罩層效果

    微信小程序?qū)崿F(xiàn)一個自定義遮罩層效果

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)一個自定義遮罩層,大概效果是點擊按鈕Show顯示遮罩層,再次點擊屏幕任何地方隱藏遮罩層,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • js 實現(xiàn)無縫滾動 兼容IE和FF

    js 實現(xiàn)無縫滾動 兼容IE和FF

    js 實現(xiàn)無縫滾動 兼容IE FF,大家可以看看。
    2009-07-07
  • js百度地圖滾輪縮放所在點偏移問題解決

    js百度地圖滾輪縮放所在點偏移問題解決

    本文主要介紹了js百度地圖滾輪縮放所在點偏移問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • bootstrap下拉框動態(tài)賦值方法

    bootstrap下拉框動態(tài)賦值方法

    今天小編就為大家分享一篇bootstrap下拉框動態(tài)賦值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • JS自定義混合Mixin函數(shù)示例

    JS自定義混合Mixin函數(shù)示例

    這篇文章主要介紹了JS自定義混合Mixin函數(shù),涉及javascript面向?qū)ο蟪绦蛟O(shè)計中函數(shù)與屬性操作相關(guān)技巧,需要的朋友可以參考下
    2016-11-11
  • js+css實現(xiàn)的簡單易用兼容好的分頁

    js+css實現(xiàn)的簡單易用兼容好的分頁

    使用html、js、css實現(xiàn)的簡單易用兼容好的分頁,具體的實現(xiàn)如下,感興趣的朋友可以參考下
    2013-12-12
  • 解決layer.confirm快速點擊會重復(fù)觸發(fā)事件的問題

    解決layer.confirm快速點擊會重復(fù)觸發(fā)事件的問題

    今天小編就為大家分享一篇解決layer.confirm快速點擊會重復(fù)觸發(fā)事件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09

最新評論