シンプルなカレンダー効果を実現する js

シンプルなカレンダー効果を実現する js

この記事では、シンプルなカレンダー効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

## css モジュール <style type="text/css">
  *{
   マージン: 0;
   パディング: 0;
  }
  。日付{
   幅: 300ピクセル;
   高さ: 220px;
   境界線: 1px実線 #000;
   マージン: 100px 自動;
  }
  。タイトル{
   幅: 200ピクセル;
   ディスプレイ: フレックス;
   フォントサイズ: 12px;
   マージン: 自動;
   テキスト配置: 中央;
   コンテンツの両端揃え: スペースを空ける;
   アイテムの位置を中央揃えにします。
  }
  。年{
   マージン: 0 40px;
   ディスプレイ: フレックス;
   flex-direction: 列;
  }
  #週{
   上境界線: 1px 実線 #000;
   下境界線: 1px 実線 #000;
   マージン: 自動;
   リストスタイルタイプ: なし;
   ディスプレイ: フレックス;
  }
  #週 li{
   表示: インラインブロック;
   テキスト配置: 中央;
   フレックス:1;
  }
  #ul{
   リストスタイルタイプ: なし;
   上マージン: 5px;
  }
  #ul li {
   表示: インラインブロック;
   幅: 40px;
   高さ: 21px;
   テキスト配置: 中央;
   境界線: 1px 実線 #fff;
  }
  。現在{
   色:赤;
  }
  #ul li:hover{
   境界線: 1px 実線の赤;
  }
  #前へ、#次へ{
   カーソル: ポインタ;
  }
 </スタイル>

##html
<div class="date">
  <div class="title">
   <span id="prev">&lt;前月</span>
   <div class="年">
    <span id="year">2021</span>
    <span id="month">5月</span>
   </div>
   <span id="next">来月&gt;</span>
  </div>
  <!-- ul を使用してカレンダーを作成します -->
  <ul id="週">
   <li>日</li>
   <li>1つ</li>
   <li>2</li>
   <li>3</li>
   <li>4</li>
   <li>5</li>
   <li>6</li>
  </ul>
  <ul id="ul">
   
  </ul>
</div>
## js コード <script type="text/javascript">
  // 日付オブジェクト。月を切り替えるのに便利なので、グローバルとして設定します。let date = new Date();
  // クリックすると月イベントが切り替わります document.getElementById('prev').addEventListener('click',function(){
   date.setMonth(date.getMonth()-1);
   追加();
  })
  document.getElementById('next').addEventListener('click',function(){
   date.setMonth(date.getMonth()+1);
   追加();
  })
  追加();
  
  //カレンダーを作成する関数 function add(){
   // 現在の年 let cYear = date.getFullYear();
   // 現在の月 let cMonth = date.getMonth()+1;
   // 現在の日付を取得します。let cDay = date.getDate();
   
   // 年と月を書き込みます document.getElementById('year').innerHTML = cYear;
   document.getElementById('month').innerHTML = cMonth+'月';
   
   
   days = new Date(cYear,cMonth,-1) とします。
   // 現在の月の日数 let n = days.getDate()+1;
   // 各月の最初の日は週の何曜日ですか? let week = new Date(cYear,cMonth-1,1).getDay();
   html = '' とします。
   //domに書き込む
   for(let i=0;i<week;i++){
    html+=`<li></li>`
   }
   for(let i=1;i<=n;i++){
    if(i==cDay){
     html+=`<li class="current">${i}</li>`
    }それ以外{
     html+=`<li>${i}</li>`
    }
   }
   // 一度挿入 document.getElementById('ul').innerHTML = html
  }
</スクリプト>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • シンプルなカレンダーを実現するためのjs css+html
  • 軽量ネイティブ js カレンダー プラグイン、calendar.js の使用ガイド
  • シンプルなカレンダーコントロールを学ぶJS
  • Vue.js でカレンダー効果を作成する
  • JSカレンダーのおすすめ
  • Pure js シンプルなカレンダー実装コード
  • js は、その日のシンプルなカレンダー効果を書き込みます [実装コード]
  • js カレンダー コントロール (分単位の精度)
  • PHP+JavaScript カレンダーコントロール
  • シンプルな JS カレンダー コントロールのサンプル コード

<<:  Nginx でアンチホットリンクを設定するための手順を完了する

>>:  Linux で MySQL パスワードを忘れた場合の解決策

推薦する

固定テーブル幅テーブルレイアウト: 固定

テーブルを画面全体(残りの空白領域)に表示するために、幅属性は 100% と定義されることが多く、セ...

MySQL移行計画と落とし穴の実践記録

目次背景解決策1: 古いデータをバックアップするオプション2: テーブルを分割する解決策3: tid...

JavaScript でカウントダウン効果を実装する

カウントダウン効果を実現するにはJavascriptを使用します。参考までに、具体的な内容は次のとお...

Reactのdiffアルゴリズムの詳細な分析

Reactのdiffアルゴリズムの理解diffアルゴリズムは、 Virtual DOMの変更された部...

Docker ベースの Jenkins のデプロイに関する詳細なチュートリアル

このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...

優れたウェブフロントエンドデザインの指標

Web ページのアクセシビリティは、フロントエンドでのみ評価および実装できるもののようです。ユーザビ...

Linux 向けの強化されたスクリーンショットと共有ツール: ScreenCloud

ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...

Linux インストール MySQL5.6.24 使用手順

Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...

DockerコンテナがSongtiなどのフォントを認識しない場合の解決策

問題の背景: docker を使用してプロジェクトをデプロイする場合、プロジェクト内で印刷コントロー...

ローカルサーバーを構築するためのwebpack-dev-serverの実装

目次序文webpack-deb サーバーwebpack-dev-server 起動エラー解決策1解決...

Nginx ロケーション設定(ロケーションのマッチング順序)の詳細な説明

ロケーションは「位置指定」を意味し、主にさまざまな位置指定のための URI に基づいています。これは...

Linux でローカル コンピューターとリモート サーバーのポートが接続されているかどうかを確認する方法

以下のように表示されます。 1. ssh -v -p [ポート番号] [ユーザー名]@[IPアドレス...

Ubuntu 18.04 コマンドでタッチパッドを無効/有効にする

Ubuntu では、ショートカット キーでタッチパッドをオフにできない状況によく遭遇します。この問題...

Windows で削除された MySQL 8.0.17 のルート アカウントとパスワードを回復する方法

少し前にSQLの独学を終え、MySQL 8.0.17をダウンロードしました。インストールして設定した...

ウェブ開発におけるクロスドメインの理由に対する複数のソリューション

目次クロスドメインの理由JSONP Nginxソリューションバックエンドソリューションクロスドメイン...