ブログのおれ最適化パート2: アクセスキー
パート1は前回の「めくる感覚で行き来できるページナビゲーションをCSSで実装する」です。
アクセスキーなんか別段目新しいことなんかないですけども以下のキーで怠惰な気分になれます。絶賛実験中なのでタイミングと僕の気分で割り当ては変わります。
index.php
- h: ページトップへ移動
- j: ひとつ新しい記事を先頭に
- k: ひとつ古い記事を先頭に*1)
- u: j,kで送った現在の記事のパーマリンクへ遷移
- l: ページ一番下へ移動
*1 ) 最後までいくとautopagerize、但しページャー左の■をクリックして本にしておく必要あり
indexとsingleでjとkの動作が逆になってるけど、今のところはこれで
single.phpなど
- h: ページトップへ移動
- j: ひとつ古い記事のパーマリンクへ遷移
- k: ひとつ新しい記事のパーマリンクへ遷移
- u: コメント入力欄まで移動
- l: ページ一番下へ移動
現状のソースコード
$(window) // Firefoxだとalertが表示されたときにフォーカスがずれて // 以降ドキュメントを一度クリックしないとキーコントロールが効かないので // なんかダイアログなのをどこかで実装しないとだめっぽい .keyup(function(e) { var key = e.keyCode, b = $("body"); switch( key ) { // h case 72: window.scroll(0, 0); break; // j case 74: if ( !b.hasClass("home") ) { if ( !$("#prev").length ) { //alert("今見ている記事が一番古い記事です"); return false; } location.href = $("#prev a")[0].href; } else { if ( currentArticle === 0 ) { //alert("これ以上記事がありません"); return false; } window.scroll(0, articles.eq(--currentArticle).offset().top - 40); } break; // k case 75: if ( !b.hasClass("home") ) { if ( !$("#next").length ) { //alert("今見ている記事が最新です"); return false; } location.href = $("#next a")[0].href; } else { if ( !articles.eq(++currentArticle).length ) { //alert("続きを読み込み中・・・ずっとこれが表示されたらもう記事がないです"); currentArticle--; return false; } if ( ( currentArticle + 1 ) === articles.length ) { loadingNextPage(); } window.scroll(0, articles.eq(currentArticle).offset().top - 40); } break; // l case 76: window.scroll(0, $("html").attr("scrollHeight")); break; // u case 85: if ( !b.hasClass("home") ) { if ( !$("#respond").length ) { //alert("コメントは記事詳細で確認できます"); return false; } window.scroll(0, $("#respond").offset().top - 50); } else { location.href = articles.eq(currentArticle).find("header").find("a:first").attr("href"); } break; default: break; } }); $("input, textarea").keyup(function(e) { e.stopPropagation(); });
Trackbacks: 0
- Trackback URL for this entry
- Listed below are links to weblogs that reference
- ブログのおれ最適化パート2: アクセスキー from 5509
Leave a comment