最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序日歷彈窗選擇器代碼實例

 更新時間:2019年05月09日 15:19:02   作者:NAMECZ  
這篇文章主要介紹了微信小程序日歷彈窗選擇器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

應公司需求,寫了一個彈窗日歷選擇器,感覺用著還不錯,封裝了一下,分享給大家,希望大家有什么意見可以指出來相互交流共同改進!

先上一個效果圖:(當天日期為2018-4-18)

時間改為5月份的效果圖:

直接上代碼:

wxml:

<view class="weui-cells weui-cells_after-title" style='margin-top:100rpx;'>
 <view class="weui-cell weui-cell_access" hover-class="weui-cell_active" catchtap='showModalBtn'>
  <view class="weui-cell__bd">選擇時間</view>
  <view class="weui-cell__ft weui-cell__ft_in-access">{{chooseDate}}</view>
 </view>
</view>
 
<view class="modal-mask" bindtap="hideModal" catchtouchmove="preventTouchMove" hidden="{{showModal}}"></view>
<view class="modal-dialog" hidden="{{showModal}}">
 <view class='modalBox'>
  <view class='box'>
   <view class='calendarBox'>
    <view class='calendarTitle'>
     當前月份:
     <text style='font-size:46rpx;'>{{thisMonth}}</text> 月
    </view>
    <block wx:for="{{week}}" wx:key="item">
     <view class="week">{{week[index]}}</view>
    </block>
    <block wx:for="{{weekNum}}" wx:key="item">
     <view class="week" style="border-bottom:0;color:transparent">0</view>
    </block>
    <block wx:for="{{dayList}}" wx:key="item">
     <view class='week' style="border-bottom:0;background-color:{{dayIndex>index?'#f1f1f1':(tapThis==index?'#1296db':'')}};color:{{tapThis==index?'white':''}}" catchtap="chooseDate" data-index="{{index}}" data-value="{{item}}">{{item}}</view>
    </block>
   </view>
  </view>
 </view>
</view>

wxss:

.modalBox{
 width: 100%;
 font-size: 32rpx;
}
.box{
 margin: 0 auto;
 width: 630rpx;
}
.calendarTitle{
 /* margin: 0 auto;
 width: 630rpx; */
 width: 100%;
 height: 80rpx;
 line-height: 80rpx;
 text-align: center;
 border-bottom: 1rpx solid #ddd;
}
.calendarBox{
 /* width: 630rpx; */
 width:100%;
 margin: 0 auto;
 border:1rpx solid #ddd;
}
.week{
 display: inline-block;
 width:90rpx;
 height: 80rpx;
 text-align: center;
 line-height: 80rpx;
 border-bottom: 1rpx solid #ddd;
}
.dateBtn{
 width:100%;
 height: 80rpx;
 display: flex;
 justify-content: space-between;
 margin-top: 20rpx;
 
}
 .dateBtn>button{
 width: 45%;
 height: 100%;
 display:flex;
 justify-content: center;
 align-items: center;
 margin: 0;
 font-size: 36rpx;
} 
/* 模態(tài)框 */ 
 
.modal-mask { 
 width: 100%; 
 height: 100%; 
 position: fixed; 
 top: 0; 
 left: 0; 
 background: #000; 
 opacity: 0.5; 
 overflow: hidden; 
 z-index: 9000; 
} 
 
.modal-dialog { 
 width: 85%; 
 padding: 100rpx 30rpx 30rpx 30rpx; 
 overflow: hidden; 
 position: fixed; 
 top: 20%; 
 left: 0; 
 right: 0; 
 margin: 0 auto; 
 z-index: 9999; 
 background: rgba(255, 255, 255, 1); 
 border-radius: 5rpx; 
} 

js:

Page({
 
 /**
  * 頁面的初始數(shù)據
  */
 data: {
  showModal:true,
  weekLength:7,
  week:["日","一","二","三","四","五","六"],
  dayList:[],
  weekNum:0,
  tapThis:0,
  thisMonth:0,
  thisYear:0,
  dayIndex:0,
  chooseDate:"",
 },
 getWeek(year,month,day){
  var that = this;
  var d = new Date();
  d.setFullYear(year);
  d.setMonth(month-1);
  d.setDate(1);
  var n = d.getDay();
  var arr =[];
  var Index=0;
  var dayN=1;
  for(var i = 0; i<day; i++){
   arr.push(dayN++);
  }
  var now = new Date();
  var nowYear = now.getFullYear();
  var nowMonth = now.getMonth()+1;
  var nowDay = now.getDate();
  var val = 1;
  if(year==nowYear){
   if(month==nowMonth){
     Index=arr.indexOf(nowDay);
     console.log(Index);
     val = nowDay;
   }
  }
  that.setData({
   weekNum:n,
   dayList:arr,
   dayIndex:Index,
   tapThis:Index,
   thisMonth:month,
   thisYear:year,
   chooseDate:year+"-"+month+"-"+val,
  })
 },
 chooseDate(e){
  var that = this;
   var n = e.currentTarget.dataset.index;
   var val = e.currentTarget.dataset.value;
   console.log(n);
   if(n>=that.data.dayIndex){
    that.setData({
     tapThis:n,
     chooseDate:that.data.thisYear+"-"+that.data.thisMonth+"-"+val,
     showModal:true,
    })
   }
 },
 /** 
 * 彈出框蒙層截斷touchmove事件 
 */
 preventTouchMove: function () {
 },
 /** 
  * 隱藏模態(tài)對話框 
  */
 hideModal() {
  var that = this;
  that.setData({
   showModal: true,
  })
 }, 
 showModalBtn(){
  var that = this;
  that.setData({
   showModal:false
  })
 },
 
 /**
  * 生命周期函數(shù)--監(jiān)聽頁面加載
  */
 onLoad: function (e) {
  var that = this;
  that.getWeek("2018","04","31"); //使用方法: 在此函數(shù)內傳入年、月、日(此月的天數(shù))即可。
 }
})

代碼設計思路:

1、此代碼是符合我們公司實際情況定制的,選擇哪個月份,需要傳遞哪個月份的參數(shù),比如我要2018-04的日歷選擇器,那么我需要在 getWeek() 中傳遞年,月,日(此月的總天數(shù))作為參數(shù),代碼會自動計算出當月的一號是星期幾并且排版好!

如果不知道此月的天數(shù) ,這里還提供如下代碼方便各位碼友計算出各個月份的天數(shù)

getDayNum(year,month){ //傳入參數(shù)年份 和 要計算的月份, 可以為字符串,也可以為數(shù)字。
  var that = this;
  var d = new Date();
  d.setFullYear(year);
  d.setMonth(month);
  d.setDate(0);
  console.log(d.getDate()); //d.getDate() 即為此月的總天數(shù)!
 },

2、具體思路就是:根據傳遞的參數(shù)計算出當月的第一天為星期幾,然后從星期幾開始排列,通過循環(huán){{總天數(shù)}}次,讓日期循環(huán)出來。然后再獲取當前日期,判斷日歷彈窗與當前月份是否吻合,如果吻合,就要將在當前日期之前的日期都設置為不可點擊狀態(tài)。然后就是點擊獲取值,整個日歷流程完畢。

以上所述是小編給大家介紹的微信小程序日歷彈窗選擇器詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • BootStrapTable服務器分頁實例解析

    BootStrapTable服務器分頁實例解析

    項目中經常會使用到表格,數(shù)據量大的時候還需要進行分頁,項目設計階段,我選擇了bootstrapTable的js插件,個人覺得這個框架非常好用,支持服務器端分頁,此篇主要寫的主要是關于服務器分頁,需要的朋友可以參考下
    2016-12-12
  • javascript CSS畫圖之基礎篇

    javascript CSS畫圖之基礎篇

    要在瀏覽器上動態(tài)地畫圖(矢量圖),個人覺得矢量圖中最關鍵的兩點.
    2009-07-07
  • JS中eval函數(shù)的使用示例

    JS中eval函數(shù)的使用示例

    eval函數(shù)會將 obj 當做代碼去執(zhí)行一遍,下面舉個例子為大家詳細介紹下具體的使用方法,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-07-07
  • JS實現(xiàn)購物車特效

    JS實現(xiàn)購物車特效

    本文主要分享了用JavaScript實現(xiàn)購物車特效的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • layer彈出層自定義提交取消按鈕的例子

    layer彈出層自定義提交取消按鈕的例子

    今天小編就為大家分享一篇layer彈出層自定義提交取消按鈕的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 理解javascript閉包

    理解javascript閉包

    這篇文章主要幫助大家理解javascript閉包概念優(yōu)缺點及應用,幫助大家全面的學習javascript閉包,需要的朋友可以參考下
    2015-12-12
  • 點擊彈出層效果&彈出窗口后網頁背景變暗效果的實現(xiàn)代碼

    點擊彈出層效果&彈出窗口后網頁背景變暗效果的實現(xiàn)代碼

    本篇文章主要是對點擊彈出層效果&彈出窗口后網頁背景變暗效果的實現(xiàn)代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 提高網站信任度的技巧

    提高網站信任度的技巧

    網站信任度:一方面指瀏覽者對于站點的信任程度,另一方面指搜索引擎對于網站的信任值(TrustRank),網站信任度對于企業(yè)站點更為重要.在得到更高信任度的同時,流量更容易轉化為實在的收入.
    2008-10-10
  • 詳解bootstrap的modal-remote兩種加載方式【強化】

    詳解bootstrap的modal-remote兩種加載方式【強化】

    本篇文章主要介紹了詳解bootstrap的modal-remote兩種加載方式【強化】,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01
  • JS 如何獲取radio選中后的值及不選擇取radio的值

    JS 如何獲取radio選中后的值及不選擇取radio的值

    獲取radio選中后的值,這在提交頁面經常會使用到的,在本文為大家介紹下不選擇也能獲取radio的值,具體實現(xiàn)如下,感興趣的朋友可以參考下
    2013-10-10

最新評論

九台市| 云安县| 宣威市| 西畴县| 宁津县| 贵南县| 登封市| 房产| 山阳县| 洛扎县| 闸北区| 建德市| 筠连县| 乌拉特中旗| 澄江县| 泗洪县| 昭通市| 大足县| 肃南| 四子王旗| 荣昌县| 新兴县| 洪泽县| 庐江县| 宁明县| 织金县| 芦山县| 新田县| 奉节县| 葫芦岛市| 谢通门县| 高邑县| 昭觉县| 繁昌县| 辽中县| 云林县| 盐津县| 萝北县| 南丹县| 武夷山市| 阜城县|