Vue實現無限滑動周選擇日期的組件代碼-創新互聯

Vue實現無限滑動周選擇日期的組件代碼?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創新互聯公司從2013年創立,是專業互聯網技術服務公司,擁有項目成都網站設計、網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元江山做網站,已為上家服務,為江山各地企業和個人服務,聯系電話:18980820575

思路

根據用戶傳入日期(不傳默認今天),獲取上一周,當周,下一周對應的日期放數組dates里

let vm = this
  this.dates.push(
   {
    date: moment(vm.defaultDate).subtract(7, 'd').format('YYYY-MM-DD'),
   },
   {
    date: vm.defaultDate,
   },
   {
    date: moment(vm.defaultDate).add(7, 'd').format('YYYY-MM-DD'),
   }
  )

根據datas 生成每一周對應的日期

getDaies (date) {
   let vm = this,
    arr = []
   let weekOfDate = Number(moment(date).format('E'))
   let weeks = ['日', '一', '二', '三', '四', '五', '六']
   let today = moment()
   let defaultDay = moment(vm.defaultDate)
   for (var i = 0; i < 7; i++) {
    let _theDate = moment(date).subtract(weekOfDate - i, 'd')
    arr.push({
     date: _theDate.format('YYYY-MM-DD'),
     week: weeks[i],
     isToday: _theDate.format('YYYY-MM-DD') === today.format('YYYY-MM-DD'),
     isDay: _theDate.format('E') === defaultDay.format('E')
    })
   }
   return arr
  }

生成每一個滑動單元的style

getTransform (index) {
   let vm = this
   let style = {}
   if (index === vm.activeIndex) {
    style['transform'] = 'translateX('+ vm.distan.x +'px)'
   }
   if (index < vm.activeIndex) {
    style['transform'] = 'translateX(-100%)'
   }
   if (index > vm.activeIndex) {
    style['transform'] = 'translateX(100%)'
   }
   style['transition'] = vm.isAnimation ? 'transform 0.5s ease-out' : 'transform 0s ease-out'
   return style
  }

然后就是處理touchstart touchend touchmove事件了,這里就不貼代碼了,說下邏輯:

  • ouchstart 記錄滑動起點位置

  • touchmove 獲得滑動距離賦值給 vm.distan.x 實時獲得當前周transform

  • touchend 改變activeIndex的值,當然改變activeIndex的值是不夠的,要實現無限滑動,就要在操作一下dates,如果是左滑刪除dates的第一個元素并且往dates里面push下下周對應日期,如果是右滑刪除最后一個元素并網數組前面unshift上上周對應的日期

關于Vue實現無限滑動周選擇日期的組件代碼問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創新互聯行業資訊頻道了解更多相關知識。

網頁標題:Vue實現無限滑動周選擇日期的組件代碼-創新互聯
轉載來于:http://m.kartarina.com/article22/cdscjc.html

成都網站建設公司_創新互聯,為您提供全網營銷推廣網頁設計公司響應式網站網站內鏈云服務器關鍵詞優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司
主站蜘蛛池模板: 亚洲精品无码久久久久久久 | 久久亚洲av无码精品浪潮| 亚洲国产精品无码久久久秋霞1| 亚洲av无码偷拍在线观看| 久久久精品无码专区不卡| 久久久久久无码Av成人影院| 国产成人无码区免费A∨视频网站 国产成人无码午夜视频在线观看 国产成人无码精品一区不卡 | 熟妇无码乱子成人精品| 国产成人无码A区精油按摩| 无码H肉动漫在线观看| 中文字幕乱偷无码AV先锋| 18禁超污无遮挡无码免费网站国产| 亚洲AV无码专区国产乱码电影| 无码色AV一二区在线播放| 亚洲AV无码一区二区三区电影| 少妇无码一区二区三区| 国产日产欧洲无码视频无遮挡| 黑人巨大无码中文字幕无码| 日韩精品真人荷官无码| av无码人妻一区二区三区牛牛| 色视频综合无码一区二区三区| 亚洲av无码专区在线电影天堂| 亚洲av无码不卡久久| 日韩精品专区AV无码 | 无码午夜成人1000部免费视频| 一区二区三区无码视频免费福利| 免费无遮挡无码视频在线观看| 国产乱人伦中文无无码视频试看| 中文字幕韩国三级理论无码| 精品亚洲AV无码一区二区| 精品无码一区二区三区爱欲九九 | 国产精品无码专区| 国产aⅴ无码专区亚洲av麻豆| 亚洲色偷拍区另类无码专区| 亚洲午夜无码片在线观看影院猛 | 亚洲AV无码专区亚洲AV伊甸园 | 亚洲av无码乱码国产精品fc2 | 亚洲a∨无码男人的天堂| 麻豆国产精品无码视频| 无码人妻一区二区三区免费手机| 无码国产精品一区二区免费 |