レンダリングを見てみましょう
1. まず機能について説明します:
1. 「OK」をクリックしてカレンダーを表示します
2.もう一度クリックして非表示にするか、DOM からこのカレンダーを削除します。このように手順1と2を繰り返します。
3. カレンダーに現在の月の日付 (毎日が何日か) を表示します。
4. 左側のカレンダーを曜日に対応させます。
2. HTML の構造について話しましょう。
1. 上の青いのは、当月、前月、翌月を表示する DIV です。
2. 次の日付と週はテーブル構造を使用してデータを保存します。曜日は thead に格納され、日付は tbody に格納されます。
3. 関数展開分析:
3.1. 最初の 2 つの関数
JQUERY でトグルを使用したことを思い出します。それは簡単に解決できます。
3.2. カレンダーに今月の日付の数を表示させますか?
日付に関係するので、オブジェクト Deta が思い浮かびます。このオブジェクトでは、特定の年、特定の日、特定の月、特定の日、特定の曜日を取得または設定できます。ただし、今月の日数を直接取得することはできません。 ?何をするか?
したがって、私たちは判断することしかできません。当月の値に基づきます。日数を変数に保存してみましょう。 (オブジェクトによって取得される現在の月は 1 である必要があります。これは 0 から計算されます)。
たとえば、現在は 5 月であるため、値 31 が変数に格納されます。つまり、今月は 31 日あります。
3.3. 現在の月の日付を曜日に対応させます。 ?
この問題の解決策は、月の最初の日とそれに対応する曜日を取得することです。以下のような順番で並べることができます。ここでの順序配置について私が理解していることは、日付が TD タグに格納されているため、TBODY 内のこれらの TD のインデックスがすべて配置されているため、その TD に数値 1 を挿入し、次の数値 2 が後の TD に挿入されるということです。 。
3.4. 左側のカレンダーを接続します。
ここで注目するのは「関連付け」です。最近「カウントダウン」を書き、今回は「連携カレンダー」を書きましたが、連携ドロップダウン メニューなどの「連携ドロップダウン メニュー」を思い出しました。地方と都市のメニュー; これらにはすべて「リンク」が含まれます。
要約すると、「リンク」する必要があるものには「ポイント」 (ここではそう呼んでおきます) が必要です。作るべきことは必ずこの点に関連するものであり、この点をこのように変更すると、この点に関連する他のものも変更され、「リンク」の効果が得られます。
たとえば、最後の「カウントダウン」の「ポイント」は、現在時刻と設定された将来の時刻の間の「合計ミリ秒数」です。カウントダウンで表示される時、分、秒はすべて「合計ミリ秒」に関係しており、「合計ミリ秒」が変化する限り、時間、分、秒もすべて変化します。 >
このカレンダー連携では、その中の「ポイント」は、現在の日付オブジェクトが作成された後に取得される年と月です。年、月、行き帰りに応じて、右側、つまり来月何を表示するかを設定します。そして、現在取得している年月が変われば、それ以降も当然変化します。それも「つながっている」のです。
もちろん、まだ対処すべき細かい点がいくつかあります。
4. コードが長すぎるため、内部のコンテンツは記事の最後にあるデモからダウンロードできます