本日実装する機能は、以下の機能です。vue.js シミュレーションカレンダープラグイン さて、もう無駄な話はやめて、早速コードを見てみましょう css: *{ マージン: 0; パディング: 0; -webkit-box-sizing: 境界線ボックス; -moz-box-sizing: 境界線ボックス; ボックスのサイズ: 境界線ボックス; } #アプリ{ 幅: 1000ピクセル; マージン: 10px 自動; } .カレンダー{ 幅: 1000ピクセル; } .カレンダーテーブル{ 幅: 1000ピクセル; } .calender テーブル,th,tr,td{ 境界線:1px 実線 #333333; 境界線の折りたたみ: 折りたたみ; } .calender td{ 高さ: 100px; 垂直方向の位置合わせ: 上; テキスト配置: 左; パディング: 5px 0 0 5px; フォントサイズ: 13px; } .calender td.cur{ 色:赤; } html: <div id="アプリ"> <div class="カレンダー"> <テーブル> <キャプション> <v-model.number="年" を選択"> <option v-for="i of 490">{{i+1969}}</option> </選択> <v-model.number="月" を選択"> <option v-for="i of 12">{{i}}</option> </選択> </caption> <頭> <tr> <th>日曜日</th> <th>月曜日</th> <th>火曜日</th> <th>水曜日</th> <th>木曜日</th> <th>金曜日</th> <th>土曜日</th> </tr> </thead> <t本文> <!-- インデックスは 0 から始まり、i は 1 から始まります --> <tr v-for="(a,index) カレンダーの長さ / 7" > <td v-for="i of 7" :class="{cur:calender[index * 7 + (i - 1)].cur }">{{calender[index * 7 + (i - 1)].fullDay}}</td> </tr> </tbody> </テーブル> </div> </div> js: var vm = 新しい Vue({ el:'#app', データ:{ 年:2018, 月:1 }, 計算:{ カレンダー(){ var arr = []; //新しいデータには 3 つのパラメーターがあります: 1. 年 2. 月 3. デフォルトは 1 です。0 の場合は、前月の最終日 (最初の 2 日間) 3 明後日を意味します。var nowMonthLength = new Date(this.year,this.month,0).getDate(); var nowMonthFirstWeek = new Date(this.year,this.month-1).getDay(); var lastMonthLength = new Date(this.year,this.month-1,0).getDate(); console.log('今月は次のようになります:' + nowMonthLength); console.log('今月の最初の日' + nowMonthFirstWeek); console.log('先月の長さ' + lastMonthLength); // this.month = parseInt(this.month); //各月の前月はどの月でしょうか? var pmonth = this.month == 1 ? 12 : this.month - 1; //前年 var pyear = this.month == 1 ? this.year - 1 :this.year; //次の月 var nmonth = this.month == 12 ? 1 : this.month + 1; //次の月 var nyear = this.month == 12 ? this.year + 1 : this.year; //ゼロ埋め関数 // function toTwo(n) { // n < 10 ? '0' + n : n を返します。 // } 関数ビルド(n) { n.toString().length > 1 を返します ? n.toString() : '0' + n.toString(); } // 先月の最後の数日を追加します while(nowMonthFirstWeek--){ arr.unshift({ 日:先月の長さ、 現在の値:true、 フルデイ:`${pyear}-${buling(pmonth)}-${buling(lastMonthLength)}` }); 先月の長さ-- } コンソールにログ出力します。 //今月の日数 var _a = 1; while(nowMonthLength--){ arr.push({ 日:_a、 偽: フルデイ:`${this.year}-${buling(this.month)}-${buling(_a)}` }); _a++ } //翌月に完了 var nextLength = arr.length > 35 ? 42 - arr.length : 35 - arr.length; _a = 1; while (nextLength--){ arr.push({ 日:_a、 現在の値:true、 フルデイ:`${nyear}-${buling(nmonth)}-${buling(_a)}` }); _a++ } arr を返します。 } } }) 注意: 適切に実行するには、まずローカルの vue.js ファイルをインポートする必要があります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: mysql 8.0.20 winx64.zip 圧縮版のインストールと設定方法のグラフィックチュートリアル
>>: Win10 での MySQL 8.0.20 のインストールと設定のチュートリアル
外部 CSS ファイルを使用したレンダリング パイプライン上図では、HTML データの要求から DO...
目次概要コンポーネントクラスの型定義を作成するジェネリック型を使用してPropsとStateを定義す...
最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...
Nginx ロード バランシング サーバー: IP: 192.168.0.4 (Nginx-Serv...
join() メソッド: 指定された区切り文字を使用して配列内のすべての要素を文字列に接続します。例...
このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...
Linuxで環境変数を削除するには?unsetコマンドを使用してすぐに削除します1. Linuxクラ...
多くの人は、Scss を使用する瞬間からコンパイル方法を説明されてきました。したがって、コマンドのコ...
具体的なコードは次のとおりです。 パッケージ epoint.mppdb_01.h3c; java.i...
目次1. UDPとLinuxの基礎の紹介2. 各機能の使い方1. ソケット機能の使用2. バインド機...
アプリをテストしたいが、それを携帯電話で実行したくない場合があります。この場合、仮想マシンを使用して...
CSS3を使用して、Googleログインページと同様の入力ボックスをアニメーション化します。効果1 ...
今日は618日、主要なショッピングモールはすべてプロモーション活動を行っています。今日は、次のように...
大学 4 年生のときのインターンシップ中に、表内のデータの番号をクリックすると、そのデータの下に新し...
目次Nginx 負荷分散構成Nginx 負荷分散戦略ポーリング(デフォルト)重さip_ハッシュ公正(...