PROGRAMMING
javascript
- ページャーを作る(簡易版)
- ページャーを作る 4/4
(クロスブラウザ対策)
(ページャー表示用メソッド)
(ページャーの使い方) - ページャーを作る 3/4
(イベント登録) - ページャーを作る 2/4
(スタイルの設定) - ページャーを作る 1/4
(ページャー用関数を準備)
(各要素を生成) - 自作カレンダーを作る 6/6
(11.~14.各種メソッド)
(15.簡単な使い方) - 自作カレンダーを作る 5/6
(09.祝休日の判定)
(10.閏年の判定) - 自作カレンダーを作る 4/6
(08.イベントの設定) - 自作カレンダーを作る 3/6
(07.スタイルの設定) - 自作カレンダーを作る 2/6
(05.カレンダーのマスのみ作成)
(06.各マスへ年月・日付を埋め込み) - 自作カレンダーを作る 1/6
(01.カレンダーの基を準備)
(02.各月の日数や年月日の区切り文字)
(03.前月・次月指定時の処理)
(04.前月・次月部分の年月を算出) - JS-Image-Resizerを使って画像を高画質で縮小
- ファイルを作成しローカルに保存
- モーダルウィンドウをクラス化
- ストップウォッチを作る
- XMLHttpRequest Lebel2を試してみる
- jQuery:Tableで親・子・兄弟要素を取得
- 文字列をセパレータ文字で分割し配列で返す関数
- forループのカウンタを使用している関数の定義
- クロージャの使いどころ
- JSONPでクロスドメイン
- AjaxでJSON形式のデータを扱う
- jsファイルからjsファイルを呼び出す
- jQuery:モーダルウィンドウを作ってみる
CSS
- フォルダ構成をCSSで見やすくする
- シンタックスハイライトPrismのカスタマイズ
- リスト(li)を中央に配置する
- ブロックレベル要素全体をリンクにする
- 実践と点線の交わり部分のギザギザをすっきりさせる
PHP
Java
- IntelliJ.Gradle.JavaFX(6) プラグイン org.beryx.jlink を使ってみる
- IntelliJ.Gradle.JavaFX(5) NSISでインストーラーを作る
- IntelliJ.Gradle.JavaFX(4) exewrapで実行可能jarをexe化する
- IntelliJ.Gradle.JavaFX(3) Jlink でカスタム JRE を作る
- IntelliJ.Gradle.JavaFX(2) すべての依存対象を含んだ Fatjar を作る
- IntelliJ.Gradle.JavaFX(1) アプリケーションを作る
- javaのコンパイルと実行
- イメージを回転する
- Exif情報を簡単に取得できるライブラリ
- 高画質で画像縮小
- JDBCによるデータベース操作
自作カレンダーを作る 4/6
自作カレンダーを作るの4ページです。
MkenCalendarのダウンロード(mkenCalendar.js + mkenCalendar-min.js)
mkenCalendar.zip
自作カレンダーを作る 1/6
01. まずはカレンダーの基を準備
02. 各月の日数や年月日の区切り文字
03. 前月・次月指定時の処理
04. カレンダーの前月・次月部分の日付の年月を算出
自作カレンダーを作る 2/6
05. カレンダーのマスのみ作成
06. 各マスへ年月・日付を埋め込み
自作カレンダーを作る 3/6
07. スタイルの設定
自作カレンダーを作る 4/6
08. イベントの設定
自作カレンダーを作る 5/6
09. 祝休日の判定
10. 閏年の判定
自作カレンダーを作る 6/6
11. 選択されている日付を得るメソッド
12. スプリッタを変更するためのメソッド
13. カレンダーを表示するメソッド
14. 指定した日付にジャンプするメソッド
15. 簡単な使い方
8.プロパティやメソッドの追加(イベントの設定)
イベントは「前月クリック」と「次月クリック」それに「日付クリック」です。
クリックされた日付はプロパティclickDayに入ります。
ここも結構なコード量になってしまいました。
MkenCalendar.prototype.setEvent = function() {
var self = this;
// 前月をクリック
self.addListener(document.getElementById(self.tagId + 'PrevID'),
'click', function(){
self.setNengetsu(-1);
self.setDays();
self.setStyle();
});
// 次月をクリック
self.addListener(document.getElementById(self.tagId + 'NextID'),
'click', function(){
self.setNengetsu(1);
self.setDays();
self.setStyle();
});
// 日付をクリック
var elements = document.getElementsByClassName(self.tagId + "DayCLS");
for (var i = 0; i < elements.length; i++) {
this.addListener(elements[i], 'click',
function(){
// クリックした日付をプロパティに格納 -------------
var dd = this.firstChild.nodeValue;
// 前月部分クリック
// classListにPrevMonthCLSがあれば
if(this.classList.contains(self.tagId + "PrevMonthCLS")) {
self.currentDay =
self.prevNenn + self.spliter + self.prevTuki
+ self.spliter + dd;
self.removeDate(self.prevNenn, self.prevTuki, dd);
}
// 当月部分クリック
if(this.classList.contains(self.tagId + "CurrentMonthCLS")) {
self.currentDay =
self.nenn + self.spliter + self.tuki
+ self.spliter + dd;
}
// 次月部分クリック
if(this.classList.contains(self.tagId + "NextMonthCLS")) {
self.currentDay =
self.nextNenn + self.spliter + self.nextTuki
+ self.spliter + dd;
self.removeDate(self.nextNenn, self.nextTuki, dd);
}
// --------------------------------------------
self.setStyle();
}
);
}
};
上記のイベント登録用関数。
MkenCalendar.prototype.addListener = function(elm, ev, listener) {
if(elm.addEventListener) { // IE以外
elm.addEventListener(ev, listener, false);
} else if(elm.attachEvent) { // IE
elm.attachEvent('on' + ev, listener);
} else {
throw new Error('イベントリスナーに未対応です。');
}
};