• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryでカレンダーを作っているのですが・・・)

年月が変わったら位置がスクロールするカレンダーを作りたい!jQueryでの修正方法を教えてください!

このQ&Aのポイント
  • ホームページ作成中に、年月が変わったら自動で位置がスクロールするカレンダーを作りたいと思っています。参考にしたサイトでは、月のみを取得してスクロールするjQueryが提供されていますが、年も反映する方法がわかりません。カレンダーはiframeで表示されており、URLは「http://www.creator-web.co.jp/rigaku/calendar.html」です。
  • jQueryを使用して年月が変わったら自動で位置がスクロールするカレンダーを作成したいです。参考にしたサイトで提供されたコードでは、月のみを取得してスクロールすることができますが、年まで反映させる方法がわかりません。カレンダーは「http://www.creator-web.co.jp/rigaku/calendar.html」でiframeで表示されています。
  • ホームページ作成中に、年月が変わったら自動で位置がスクロールするカレンダーを作成したいです。参考にしたサイトでは、月のみを取得してスクロールすることができますが、年まで反映させる方法がわかりません。カレンダーは「http://www.creator-web.co.jp/rigaku/calendar.html」でiframeで表示されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 まずさらっと見て何点かHTMLを見直したほうが良い部分があります。 aタグのnameはidに変える、それに従い数字のみはだめ。 aタグの中にdivタグはだめ spanタグの中にdivタグはだめ 本題ですが、以下のようにすればお望みどおりの動きになると思います。 (実際動かして無いので間違えていたらスミマセン) ぐちゃぐちゃかいてますが、年が進むにつれて、1年分のピクセル数を加算すればよいのです。 その計算がA)式になります。 手計算すれば分かりますが 2014/2014の余りは0 2015/2014の余りは1 2016/2014の余りは2 ・・・・ となります。 表示を開始している年月に対して上記の値*12ヶ月分のピクセルを足せば、一年分先に進むことになります。 window.onload = function(){ // 何年からのカレンダーを表示しているか var startYear = 2014; // 何月からのカレンダーを表示しているのか var startMonth = 2; // 上下のピクセル数 var step = 500; // 当日を取得 var today = new Date(); // 年を取得 var year = today.getFullYear(); // 月を取得 var month = today.getMonth(); // 表示位置を算出 // A)取得した年を表示開始年で割った余りに12ヵ月分のピクセル数をかける // B)取得した月を表示開始月からいくつ分かを計算する // // すなわち実行日が今日の場合(2014年2月) // A)2014割る2014の余りは0 0*12*500 = 0 // B)(1-2+1) * 500 = 0 ← monthは0~11の値が入る // A + B = 0になり表示位置は0 // よって、実行日が2015年2月の場合は // A)2015割る2014の余りは1 1*12*500 = 6000 // B)(1-2+1) * 500 = 0 ← monthは0~11の値が入る // A + B = 6000になり表示位置は6000 var y = ( year % startYear * 12 * step ) + (month-startMonth+1)*step; window.scrollTo(0,y); }

関連するQ&A