この記事では、シンプルなカレンダー効果を実現するための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"><前月</span> <div class="年"> <span id="year">2021</span> <span id="month">5月</span> </div> <span id="next">来月></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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Nginx でアンチホットリンクを設定するための手順を完了する
>>: Linux で MySQL パスワードを忘れた場合の解決策
テーブルを画面全体(残りの空白領域)に表示するために、幅属性は 100% と定義されることが多く、セ...
目次背景解決策1: 古いデータをバックアップするオプション2: テーブルを分割する解決策3: tid...
カウントダウン効果を実現するにはJavascriptを使用します。参考までに、具体的な内容は次のとお...
Reactのdiffアルゴリズムの理解diffアルゴリズムは、 Virtual DOMの変更された部...
このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...
Web ページのアクセシビリティは、フロントエンドでのみ評価および実装できるもののようです。ユーザビ...
ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...
Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...
問題の背景: docker を使用してプロジェクトをデプロイする場合、プロジェクト内で印刷コントロー...
目次序文webpack-deb サーバーwebpack-dev-server 起動エラー解決策1解決...
ロケーションは「位置指定」を意味し、主にさまざまな位置指定のための URI に基づいています。これは...
以下のように表示されます。 1. ssh -v -p [ポート番号] [ユーザー名]@[IPアドレス...
Ubuntu では、ショートカット キーでタッチパッドをオフにできない状況によく遭遇します。この問題...
少し前にSQLの独学を終え、MySQL 8.0.17をダウンロードしました。インストールして設定した...
目次クロスドメインの理由JSONP Nginxソリューションバックエンドソリューションクロスドメイン...