ネットサービスの開発に役立ちそうな話題を中心にお届けします。
F.Ko-Jiの「一秒後は未来」 > Javascript > livedoor ReaderでのOPMLインポート後画面の“チェックボックス操作”を再現するJavaScriptサンプル
2007年03月29日 20:10

livedoor ReaderでのOPMLインポート後画面の“チェックボックス操作”を再現するJavaScriptサンプル

スポンサード リンク

昨日書いた「チェックボックスをマウスでなめるようにドラッグするだけで切り替えるJavaScriptのサンプル」に対して「livedoor Readerのとは少し違う」というツッコミがありましたので、再度サンプルを作り直してみました。

修正点は以下の通り。

  • チェックボックスを囲むリストエレメントでも操作は有効
  • リストエレメントもしくはチェックボックス上でmousedownしたらチェック状態を切り替える
  • マウスをドラッグすると、他のチェックボックスは最初に切り替わったチェックボックスの状態へのみ切り替わる

(JavaScriptが無効なRSSリーダーから見ている場合はページを訪問してください。)

ソースコード

/* サンプルのli要素には class="sample_li" をつけてます。 */
/* require prototype.js */
if (typeof SAMPLE == "undefined") {
    var SAMPLE = {};
}
SAMPLE.isMousedown = false;
SAMPLE.isChecked = false;
SAMPLE.clickedElement = undefined;
SAMPLE.mousedown = function(e) {
    e = e || window.event;
    var target = e.target || e.srcElement;
    SAMPLE.clickedElement = target;
    if (target.type == "checkbox") {
        target.click();
        SAMPLE.isMousedown = true;
        SAMPLE.isChecked = target.checked;
    }
    else if (target.className == "sample_li") {
        target = target.firstChild;
        if (target.type == "checkbox") {
            target.click();
            SAMPLE.isMousedown = true;
            SAMPLE.isChecked = target.checked;
        }
    }
}
SAMPLE.mouseup = function(e) {
    e = e || window.event;
    var target = e.target || e.srcElement;
    if (target == SAMPLE.clickedElement && target.type == "checkbox") {
        target.click();
    }
    SAMPLE.isMousedown = false;
}
SAMPLE.mouseover = function(e) {
    e = e || window.event;
    var target = e.target || e.srcElement;
    if (target.className == "sample_li") {
        target = target.firstChild;
    }
    if (SAMPLE.isMousedown && target.type == "checkbox") {
        if (SAMPLE.isChecked && !target.checked || !SAMPLE.isChecked && target.checked) {
            target.click();
        }
    }
}
Event.observe(document, "mousedown", SAMPLE.mousedown);
Event.observe(document, "mouseup", SAMPLE.mouseup);
Event.observe(document, "mouseover", SAMPLE.mouseover);

確かにこのインタフェースなら使いやすいですね。

スポンサード リンク

Subscribe with livedoor Reader Add to Google Subscribe with Fastladder My Yahoo!に追加 Bloglinesで閲読登録 はてなRSSに追加 エキサイトリーダーに登録


トラックバック

このエントリーのトラックバックURL:

コメントを投稿

(承認されるまでコメントは表示されません。)

Javascript / ユーザビリティ

English version

前のエントリー: « ブログにトラフィックを集めるための29の方法
次のエントリー: 日本や海外のRSS関連情報をお届けするFeedmedia »

タイトル:

URL:

リンク用HTMLタグ:

Agile Media Network

AMN Partner Blog

広告掲載について

東京ナイロンガールズ
持っているガジェット
powered by Gadget Party
ブログクラブ

最近のつぶやき
このブログの読者になる

F.Ko-Jiの「一秒後は未来」 - RSSフィード

クマでもわかるこのブログの便利な更新チェック方法

DailyFeed

あわせて読みたいブログパーツ

フィードメーター - F.Ko-Jiの「一秒後は未来」

メンバー by Friend Connect

月別アーカイブ


<< September 2010
SuMoTuWeThFrSa
 1234
567891011
12131415161718
19202122232425
2627282930 
人気エントリー
TopHatenar
携帯からのアクセスは
QRコード
http://mob.fkoji.com/