- 締切済み
jQueryでカレンダーを作っているのですが・・・
現在ホームページを作成していて、 年月が変わったら、自動で位置がスクロールするカレンダーを作りたいと思っています。 そこで、jQueryを使おうと思い、下記のURLを参考に入れようと思ったのですが、 http://qa.itmedia.co.jp/qa2937941.html ここに書いてあるのは、 function next() {window.scrollBy(0,500);} function last() {window.scrollBy(0,-500);} window.onload = function(){ var today = new Date(); window.scrollTo(0,today.getMonth()*0); } というjQueryで、 自動で月のみを取得してスクロールするjQueryでした。 年も反映するにはどう修正したらいいのかがわかりません。 そこで、日付表示のjQueryを参考にして、 myD = new Date(); myYear = myD.getFullYear(); myMonth = myD.getMonth() + 1; myDate = myD.getDate(); myDay = myD.getDay(); myMess1 = myYear + "" + myMonth + "" ; myMess = myMess1 + " "; document.write( myMess ); で、「20142」という(カレンダーでつけている)名前を表示するまではできました。 ですが、その名前の場所にスクロールする書き方が分かりません。 ちなみに、カレンダーは下記のURLで、 http://www.creator-web.co.jp/rigaku/calendar.html iframeで該当カレンダー部分だけ表示するようにいしています。 http://www.creator-web.co.jp/rigaku/index.html アドバイスお願いします!
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hamuty
- ベストアンサー率50% (2/4)
javascriptの部分だけ修正したのですが、以下のような感じでいかがでしょうか? 2014年2月を基準にしています。 そんなに詳しいわけではないので、もっとよいアドバイスがあればそちらを参考にしてください。 ちなみに現在のjavascriptは window.scrollTop(0,yearday()*0); の部分が文法エラーになるので動いていないのではないかと思います。 <script> function next() {window.scrollBy(0,500);} function last() {window.scrollBy(0,-500);} window.onload = function(){ //2014年2月が基準 var baseYear = 2014; var baseMonth = 2; var today = new Date(); var year = today.getFullYear(); //現在のyearを取得する。 var month = today.getMonth()+1; //現在のmonthを取得する。javascriptでは月は0から11で扱われる。例えば1月は0で2月は1になる。従って1を足す。 var diff = 0; //2014年2月から当月まで何ヶ月かを計算します。2014年と2015年以降で条件分岐しています。 if(year == baseYear) { diff = month - baseMonth; } else { //例えば2017年1月の場合、2014年の10ヶ月+2015年と2016年の24ヶ月+2017年の1ヶ月という計算です。 diff = (12 - baseMonth) + (year - (baseYear + 1)) * 12 + month; } //500 × 月の差分の座標だけ下にスクロールする。 window.scroll(0 , diff * 500); } </script> ご確認よろしくお願いします。
- hamuty
- ベストアンサー率50% (2/4)
http://www.creator-web.co.jp/rigaku/index.html を拝見したのですが、これで問題なさそうに感じるのですが、加えてどういった挙動をしてほしいのでしょうか?
補足
今の時点ですと、月が変ると変更されるのですが、2014年から2015年にうつると、2015年の×月であれば、2014年の×月が表示されてしまいます。 つまり、今年は問題ないのですが2015年以降のカレンダーが、 全て2014年の同じ月表示になってしまいます。 2015年3月→表示が2014年3月 2016年2月→表示が2014年2月 です。 アドバイスいただけますと幸いです。