整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          「MindFusion教程」JavaScript中的

          「MindFusion教程」JavaScript中的交互式事件時間表(上)

          文描述了如何創建日程表的主要步驟,該表顯示了大學房間分配到不同課程。用戶可以通過講師過濾課程。

          I.初始設置

          我們首先復制我們將在項目目錄中使用的JavaScript調度程序文件。這些是:

          • MindFusion.Scheduling.js - 表示Js Scheduler庫
          • MindFusion.Scheduling-vsdoc.js - 提供Intellisense支持
          • standard.css - 在子目錄“themes”中,這是資源表的CSS主題樣式
          • planner_lic.txt - 將您的許可證密鑰粘貼到此處以禁用試用版本標簽。

          我們專門為我們的應用創建了2個文件:

          • ResourceView.html - 應用程序的網頁
          • ResourceView.js - 實現應用程序動態功能的JavaScript代碼。

          II.HTML頁面

          在我們網頁的head部分,我們首先創建一個對主題文件的引用:

          在網頁的最后,只需關閉結束標記,我們添加對Scheduling.js文件的引用,該文件包含我們將為應用程序編寫的調度功能和ResourceView.js文件:

          <script src=“MindFusion.Scheduling.js” type=“text / javascript” > </ script> <script src=“ResourceView.js” type=“text / javascript” > </ script> 
           
          

          日歷庫需要HTML

          元素,用于呈現它。我們添加一個:

          <div id=“calendar” style=“ height :100 %; width :100 %; ” > </ div> 
          

          為此< div >添加一個id非常重要,因為我們需要在JS代碼后面的文件中引用它。

          III.基本的JavaScript設置

          在JavaScript代碼隱藏文件的頂部,我們添加了對Intellisense文件的引用。我們還創建了一個MindFusion.Scheduling命名空間的映射:

          /// <reference path="MindFusion.Scheduling-vsdoc.js"></reference>
          var p=MindFusion.Scheduling
          

          然后我們創建日歷對象。我們需要對將呈現它的< div>元素的引用:

          // create a new instance of the calendar
          calendar=new p.Calendar(document.getElementById("calendar"));
          

          對于此示例中,我們將使用的ResourceView的currentView屬性指定。此外,我們將日歷中的可見單元格數設置為7.這是通過日歷的resourceViewSettings屬性來完成的。

          // set the view to ResourceView, which displays the distribution of resources over a period of time:
          <pre>calendar.currentView=p.CalendarView.ResourceView;
          // set the number of visible cells to 7
          calendar.resourceViewSettings.visibleCells=7; 
          

          該itemSettings廣告載體讓我們定制的項目進度我們使用titleFormat和tooltipFormat指定了每個項目的標題和工具提示將呈現。兩個屬性都使用特殊格式字符串

          • %s - 將呈現開始日期
          • %e - 將呈現項目的結束日期
          • %d - 將呈現項目的詳細信息。

          您可以通過在括號中添加所需格式來指定日期和時間的格式:

          // show hours on items
          calendar.itemSettings.titleFormat="%s[HH:mm] - %e[HH:mm] %h";
          calendar.itemSettings.tooltipFormat="%d";
          

          然后我們將日歷的主題設置為標準,我們在網頁中引用了它的css文件:

          calendar.theme="standard";
          

          我們再做一次調整 - 聯系人的姓名將取自該人的姓氏。可能的值是“F”,“M”和“L” - 用于名字,中間名和姓氏。

          calendar.contactNameFormat="L";
          

          點擊“了解更多”下載產品最新版

          ↓↓↓

          作為一名前端開發人員,設計師給的UI要實現日歷,找了找開源的項目,發現不是樣式不符合就是交互不符合,改源碼看不懂?頭都大,今天就教教大家用200行不到的代碼實現精美日歷(h5+微信小程序都適用)

          效果

          效果

          思路

          以window10系統的日歷為例,我們可以看出,一個月份的日歷組成總共為7列6行,日期有三個部分組成,1為上月由于該月第一天的周幾產生的空白部分,2為本月的所有天數,3,為6x7-(上月空白部分 + 本月天數)

          win10日歷

          開始寫代碼

          • 計算本月天數
           getDates (d, t=0) {
           var curDate=new Date(d.replace(/-/g, '/'))
           var curMonth=curDate.getMonth()
           curDate.setMonth(curMonth + t + 1)
           curDate.setDate(0)
           var curDates=new Array(curDate.getDate()).fill(0).map((item, key)=> {
           return key + 1
           })
           return curDates
           }
          

          getDates(d)中的參數d為該月的任意一天,方法放回該月有效的所有天數

          • 計算該月第一天是星期幾
           getWeek (d) {
           var curDate=new Date(d.replace(/-/g, '/'))
           curDate.setDate(1)
           return curDate.getDay()
           }
          
          • 計算該月+前后留白天數
           getFullChunkDates (d) {
           var curDates=this.getDates(d)
           var preDates=this.getDates(d, -1)
           var nexDates=this.getDates(d, 1)
           var curWeek=this.getWeek(d)
           curDates=curDates.map((i, k)=> {
           return {
           num: i,
           fullDate: /(^\d{4})-(\d{1,2})-/.exec(d)[0] + i,
           show: 1
           }
           })
           preDates=preDates.map(i=> {
           return {
           num: i,
           show: 0
           }
           })
           nexDates=nexDates.map(i=> {
           return {
           num: i,
           show: 0
           }
           })
           var preCurDates=preDates.slice(preDates.length - (curWeek===0 ? 6 : curWeek - 1), preDates.length).concat(curDates)
           return preCurDates.concat(nexDates.slice(0, 42 - preCurDates.length))
           }
          
          • 獲取天數用于圖層渲染(計算2019-10-16所在月份的日歷)
          #js--------------------
          data () {
           return {
           days: []
           }
          }
          created () {
           this.days=this.getFullChunkDates('2019-10-16')
          }
          #html--------------------
          <view class="c-day">
           <view class="d-item"
           :key="key" v-for="(item, key) in days">
           <text>{{item.num}}</text>
           </view>
          </view>
          

          為了保證渲染不出現胡亂,必須保證.c-day節點下的.d-item為7x6的分布狀態

          結語

          今天教大家如何自己實現日歷就完成了,覺得不錯就點幾下關注和分享唄

          《原文發表于本人博客kyeteo.cn》

          近有做日歷的需求,找了很久,分享一款優秀的日歷組件。

          關于 Mpvue Calendar

          Mpvue Calendar 是一款簡單實用,功能強大的 Vue 日歷組件,適合用在日期選擇、日期范圍選取以及日歷展示場景,使用非常簡單,是一款非常值得收藏使用的優秀 Vue 組件。

          支持中國農歷

          Mpvue Calendar 的特性

          • 基于TypeScript 和 Vue 3.0+,開箱即用,體驗流暢
          • 界面簡潔優雅,操作簡單,用戶體驗符合常規日歷組件
          • 支持中文界面,也支持中國農歷
          • 支持 web PC 端和移動端,適配了手勢滑動操作

          上手體驗

          日期和日歷在很對產品上都有需求,眾所周知,原生 javascript 中的關于時間和日期的語法復雜難記,手寫一個本地化的日歷,需要考慮較全面。

          而 Mpvue Calendar 是一款使用非常簡單的開源日歷組件,目前只提供 Vue 3.0+ 版本,只提供 npm 安裝的方式使用,滿足了產品對日期選擇、日期范圍選取以及日歷展示等需求,實現了對日歷的需求的絕大多數功能。官網上有充足的例子,上手沒有難度,新手也可以很快上手使用。

          周視圖

          當然了,這個組件是開源的,源碼代碼量也不多,完全可以二次開發修改成自己想要的樣子,也非常適合作為學習 Vue 3.x 的項目,收下吧。

          免費開源說明

          Mpvue Calendar 是一個免費使用,開源的前端組件項目,基于 MIT 開源協議在 Github 上開源,各位可以直接下載源碼使用,也可以根據 api 文檔通過 npm 安裝使用。

          關注我,持續分享高質量的免費開源、免費商用的資源。

          ↓↓點【了解更多】查看本次分享的網址。


          主站蜘蛛池模板: 亚洲日本一区二区三区在线| 精品少妇一区二区三区在线| 精品一区二区三区在线观看视频 | 国精产品一区一区三区免费视频 | 日韩av片无码一区二区不卡电影| 国模精品视频一区二区三区| 亚洲av鲁丝一区二区三区| 极品尤物一区二区三区| 国产在线精品一区在线观看| 亚洲国产成人久久一区WWW | 色多多免费视频观看区一区| 偷拍激情视频一区二区三区| 亚洲一区二区三区在线视频| 亚洲国产欧美一区二区三区 | 国产精品日韩一区二区三区| 国产精品熟女视频一区二区| 高清在线一区二区| 久久se精品一区二区国产| 国产成人亚洲综合一区| 视频一区视频二区制服丝袜| 一本一道波多野结衣AV一区| 波多野结衣在线观看一区二区三区| 一区国严二区亚洲三区| 亚洲中文字幕一区精品自拍| 精品一区二区三区在线成人 | 国产激情з∠视频一区二区| 国产AⅤ精品一区二区三区久久| 国产成人久久一区二区三区| 成人毛片一区二区| 无码人妻久久一区二区三区蜜桃 | 无码av中文一区二区三区桃花岛| 精品无码人妻一区二区免费蜜桃| 国产av一区二区三区日韩| 无码人妻视频一区二区三区| 亚洲一区二区在线视频| 精品香蕉一区二区三区| 成人区人妻精品一区二区三区 | 亚洲国产韩国一区二区| 97久久精品无码一区二区| 日韩AV片无码一区二区不卡| 国产一区二区三区在线电影|