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

vue實現(xiàn)簡單的日歷效果

 更新時間:2020年09月24日 09:25:03   作者:沐離歌  
這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)簡單的日歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近在項目中遇到了一個需求,在vue中創(chuàng)建一個組件,這個組件顯示的是當(dāng)前的日期,以及在當(dāng)前的日需要處理的事項,處理的事項的信息會以后端的接口的形式返回。

需求確認(rèn)后,搭建了一下,在這里記錄了一下,現(xiàn)在是簡單的實現(xiàn)了這個需求,但是肯定的是后期需要進(jìn)行修改。

vue就不多說了,在vue中使用的是原生JS

效果圖(基本沒有樣式,很low)

現(xiàn)在實現(xiàn)的都是最初級的版本,代碼里面的容錯,還有一些性能上的處理,并沒有書寫。

不多說,上代碼:

首先是vue的html結(jié)構(gòu),很簡單,里面添加了一些其他時間形式的顯示,可根據(jù)具體使用場景增刪

<div id="dateContainer">
  <div class="date__showNowTime">
  今天是 <span v-text="ynow"></span>年<span v-text="mnow+1"></span>月<span v-text="dnow"></span>日
  </div>
  <div class="nowTime">
  <button class="preMon" @click="preMon">上個月</button>
  <div class="thisMon">
   <span v-text="ynow"></span>/
   <span v-text="mnow+1"></span>
  </div>
  <button class="nextMon" @click="nextMon">下個月</button>
  </div>
  <table border="1" id="table">
 
  </table>
 
</div>

接下來是實現(xiàn)我們的這個需求的JS代碼的位置了,關(guān)于js的代碼,在代碼里面存在一些注釋,具體可以根據(jù),代碼的注釋進(jìn)行解讀

export default {
 data() {
  return {
  newDate: '',//當(dāng)前的日期的信息
  ynow: '',//當(dāng)前的年數(shù)
  mnow: '',//當(dāng)前的月份
  dnow: '',//當(dāng)前的天數(shù)
  firstDay: '',//第一天
  firstnow: '',//當(dāng)前的星期
  m_days: [],//每個月的天數(shù)
  tr_str: '',//行數(shù)
  }
 },
 methods: {
  getDaysInfo() {
  var _this = this;
  this.sureDate(_this);
  },
  is_leap(year) {//判斷是不是閏年
  return (year%100==0?(year%400==0?1:0):(year%4==0?1:0));
  },
  //下面的是畫表格的方法,這個方法會根據(jù)數(shù)據(jù)畫出我們需要的表格
  drawTable(jsonHtml) {
  var _this = this;
  var str = `
  <tr class="xiqi">
   <td class="isRed">星期日</td>
   <td>星期一</td>
   <td>星期二</td>
   <td>星期三</td>
   <td>星期四</td>
   <td>星期五</td>
   <td class="isRed">星期六</td>
  </tr>`;
  var idx = '',date_str = '',isRed = '',hasMsg='';
  for(var i = 0; i< _this.tr_str; i++) {
   str+='<tr>';
   for(var k = 0; k < 7; k++) {
 
    idx = i*7+k;
    isRed = (k===0||k===6)?"isRed":"";
    date_str=idx-_this.firstnow+1;
   (date_str<=0 || date_str>this.m_days[this.mnow]) ? date_str=" " : date_str=idx-_this.firstnow+1;
   date_str==_this.dnow?hasMsg='<td class="thisDay" date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span></td>':hasMsg='<td date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span></td>';
 
   for(var l = 0, len = jsonHtml.length; l < len; l++) {
   if(date_str== jsonHtml[l].date) {
    var newStr = '<p>'+jsonHtml[l].msg +'</p>';
    date_str==_this.dnow?hasMsg='<td class="thisDay" date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span>'+ newStr+'</td>':hasMsg='<td date="'+date_str +'"><span class="'+isRed +'">'+date_str+'</span>'+ newStr+'</td>';
 
   }
   }
   str+=hasMsg;
   }
   str+='</tr>';
  }
  var table = document.getElementById('table');
  table.innerHTML = str;
  },
  //兩個參數(shù)代表的含義分別是this對象以及判斷當(dāng)前的操作是不是在進(jìn)行月份的修改
  sureDate(_this,other) {
  this.newDate = new Date();
  this.ynow = this.newDate.getFullYear();
  if(!other) {
   this.mnow=this.newDate.getMonth(); //月份
  }
  this.dnow=this.newDate.getDate(); //今日日期
  this.firstDay = new Date(this.ynow,this.mnow,1);
  this.firstnow=this.firstDay.getDay();
  this.m_days = [31,28+this.is_leap(this.ynow),31,30,31,30,31,31,30,31,30,31];
  this.tr_str = Math.ceil((_this.m_days[this.mnow] + this.firstnow)/7);
  this.showMsg();
  },
  preMon() {
  var _this = this;
  this.mnow--;
  this.sureDate(_this,"up");
  },
  nextMon() {
  var _this = this;
  this.mnow++;
  this.sureDate(_this,"next");
  },
  //通過接口返回的是我們當(dāng)前的月份對應(yīng)在日歷中需要處理的事項
  showMsg() {
  var jsonHtml = [{
   date: 2,
   msg: '吃飯'
  },
  {
   date: 3,
   msg: '睡覺'
  },
  {
   date: 4,
   msg: '打豆豆'
  },
  {
   date: 6,
   msg: '豆豆不在家'
  },
  {
   date: 12,
   msg: '~~~~~'
  },
  {
   date: 15,
   msg: '怎么辦~~~~'
  },
  {
   date: 20,
   msg: '找豆豆'
  }];
  this.drawTable(jsonHtml)
  }
 
 },
 mounted() {
  //畫出當(dāng)前的月份的天數(shù)對應(yīng)的表格
  this.getDaysInfo();
  //進(jìn)行數(shù)據(jù)的獲取,顯示到對應(yīng)的位置
 }

js的代碼目前的來說也就是這么多,里面只是初步實現(xiàn)了功能,其他什么都沒進(jìn)行處理~~~~

具體的實現(xiàn)可以訪問我的github獲取--點擊打開鏈接

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

相關(guān)文章

  • 簡單學(xué)習(xí)vue指令directive

    簡單學(xué)習(xí)vue指令directive

    這篇文章主要和大家一起簡單學(xué)習(xí)一下vue指令:directive,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 在vue項目中使用codemirror插件實現(xiàn)代碼編輯器功能

    在vue項目中使用codemirror插件實現(xiàn)代碼編輯器功能

    這篇文章主要介紹了在vue項目中使用codemirror插件實現(xiàn)代碼編輯器功能(代碼高亮顯示及自動提示),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 詳解vue-cli腳手架build目錄中的dev-server.js配置文件

    詳解vue-cli腳手架build目錄中的dev-server.js配置文件

    這篇文章主要介紹了詳解vue-cli腳手架build目錄中的dev-server.js配置文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Vue路由跳轉(zhuǎn)的4種方式小結(jié)

    Vue路由跳轉(zhuǎn)的4種方式小結(jié)

    本文主要介紹了Vue路由跳轉(zhuǎn)的4種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • vue-router路由懶加載及實現(xiàn)方式

    vue-router路由懶加載及實現(xiàn)方式

    這篇文章主要介紹了vue-router路由懶加載及實現(xiàn)方式,路由懶加載的主要作用是將 路由對應(yīng)的組件打包成一個個的js代碼塊,只有在這個路由被訪問到的時候,才會加載對應(yīng)組件的代碼塊,需要的朋友可以參考下
    2022-12-12
  • 解決vue項目router切換太慢問題

    解決vue項目router切換太慢問題

    這篇文章主要介紹了解決vue項目router切換太慢問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vite+vue3項目啟動報錯Unexpected?“%“問題及解決

    vite+vue3項目啟動報錯Unexpected?“%“問題及解決

    這篇文章主要介紹了vite+vue3項目啟動報錯Unexpected?“%“問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue中的事件修飾符once,prevent,stop,capture,self,passive

    vue中的事件修飾符once,prevent,stop,capture,self,passive

    這篇文章主要介紹了vue中的事件修飾符once,prevent,stop,capture,self,passive,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue.js父與子組件之間傳參示例

    Vue.js父與子組件之間傳參示例

    本篇文章主要介紹了Vue.js父與子組件之間傳參示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Vue transition實現(xiàn)點贊動畫效果的示例

    Vue transition實現(xiàn)點贊動畫效果的示例

    點贊動畫是網(wǎng)頁評論中常見的功能,本文將介紹如何用vue實現(xiàn)這一效果。點贊時愛心縮小變大,變大時略微大一點再變正常,取消點贊時愛心無動畫,同時數(shù)字滾動,+1 時向上滾動,-1 時向下滾動
    2021-05-05

最新評論