お世話になります。
javascript初心者のため、的外れな質問をしていましたらすみません。
HTMLサイトのフォーカスを、TabキーまたはShift+Tab押下で特定の範囲内で循環させたいと考えております。
イメージ的には、サイトのメニューにあたる部分(リンク)をぐるぐるループしてくれれば・・・と思うのですが。
Tabindex指定ですと、意図した順番には移動してくれますが、最後のTabが押されても最初に戻ることはできませんし・・・
そう思ってonkeydownで制御しようと思ったのですが、Shift+Tabの動作をどう実現していいのか分かりませんでした。
言葉足らずで申し訳ありませんが、ご回答宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
れすがつかないね~。
これでよいのかまったくわかりません。
(めもりーりーくとか、そのたもろもろ・・・)
できるなら、たのひとのあどばいすがほしいです。
ぜんかくくうはくは、はんかくにしてね
2だんめのあんかーにふぉーかすをあてるには、
まうすでどらっぐしてほかのばしょではなす?。
はんたいまわりは、てぬきしました。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>test</title>
<form action="#">
<p id="pp">
<a href="#">abc</a>
<a href="#">abc</a>
<a href="#">abc</a>
</p>
<p id="qq">
<a href="#">abc</a>
<a href="#">abc</a>
<a href="#">abc</a>
</p>
<p id="rr">
<a href="#">abc</a>
<a href="#">abc</a>
<a href="#">abc</a>
</p>
<p>a</p>
</form>
<script type="text/javascript">
//@cc_on
var Kurukuru = (function ( createListener, get, next ) {
return function ( id ) {
var listener = createListener( id, get, next );
document.getElementById( id )./*@if( @_jscript ) attachEvent('on' + @else@*/ addEventListener(/*@end@*/
'keydown', listener, true);
};
})(
function ( tid, get, next ) {
return function (evt) {
var e = evt./*@if( @_jscript ) srcElement @else@*/ target /*@end@*/;
var keyCode = evt./*@if( @_jscript ) keyCode @else@*/ which /*@end@*/;
var shift = evt.shiftKey;
var p, c;
if( 'A' !== e.nodeName ) return;
if( !shift && keyCode == 9 ) {
if( p = get( next( e ), 'id', tid ) ) return;
evt./*@if( @_jscript ) returnValue = false @else@*/ preventDefault() /*@end@*/;
(p = next( e.parentNode )) && p.focus();
}
};
},
function (node, type, val) {
return node ? (val == node[type]) ? node: arguments.callee(node.parentNode, type, val): null;
},
function ( n ) {
var e;
while (n) {
e = n.firstChild || n.nextSibling
if (! e) {
do {
if ((n = n.parentNode) && n.nodeName == 'BODY') return null;
} while (! (e = n.nextSibling))
}
n = e;
if( 1 === n.nodeType && 'A' == n.nodeName ) return n;
}
return null;
}
);
Kurukuru('pp');
Kurukuru('qq');
Kurukuru('rr');
</script>
お礼が遅くなり申し訳ありませんでした。
投げっぱなしの質問だったにも関わらず、丁寧なご回答をどうも有難う御座いました。
自分の勉強不足を反省し、こちらのソースを参考に作成させて頂きたいと思います。
本当に有難う御座いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- マウス・キーボード Tabキーとテンキーが右側にあるワイヤレスキーボード を探しています。 仕事上数字を入力することが多 3 2022/09/22 21:13
- Excel(エクセル) エクセルのワークシートを簡単に別ファイルにする方法は? 5 2023/01/11 14:50
- モニター・ディスプレイ Win11マルチディスプレイでの異なる仮想デスクトップの表示 3 2023/02/01 10:02
- フリーソフト AutoHotKey 「Tabを押し続ける → 右クリックを押し続ける」は出来る?? 2 2023/05/05 14:36
- 楽器・演奏 TAB譜について 5 2023/04/18 19:52
- Windows 7 ショートカットキー 応用編 どういうの主に使いますか? 2 2022/12/28 23:46
- Windows 10 Windows11タスクバーやエクスプローラー、スタートメニュー 動画全画面時にカーソルが見えない 1 2022/04/08 00:03
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
任意の座標をクリックさせるには
-
<a>タグのテキストを取得
-
問題はbind の付いたリスナーを...
-
onchangeイベントを使ってspan...
-
画像上のクリックした場所が分...
-
ActiveXobjectが作成できない
-
[初心者]javascriptのfor文でな...
-
innerHTML実行後のイベント
-
配列の大括弧と丸括弧はどう違う?
-
idを使わずにonclickで自身の要...
-
同じ型【ハイフンと数字】だけ...
-
JavaScript window.openで開く...
-
VSCODE[Python]の設定について
-
google apps scriptの終了のさせ方
-
同じIDで定義した要素の配列を...
-
C#テキストボックスの文字を配...
-
React hooksが値を返して配列変...
-
javascriptで重複しないように...
-
ジェネレーターの作り方
-
ページ内に複数表がある場合のT...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
onchangeイベントを使ってspan...
-
HTML:Tableタグに対し、JavaScr...
-
任意の座標をクリックさせるには
-
モーダルダイアログウィンドウ...
-
innerHTML実行後のイベント
-
Click回数を数え、規定された回...
-
javascript 特定のタグのidの存...
-
[初心者]javascriptのfor文でな...
-
【Tabキー】特定の範囲内だけで...
-
javascriptでスロットゲームを...
-
JavaScriptとcookieを利用して...
-
日本語入力の禁止
-
javascriptで編集可能不可能の...
-
画像の一部を表示
-
javascriptで、表示されている...
-
DIV内のDIV要素を移動する。
-
javascript の 命令文の記述で...
-
重複しないくじの作り方がわか...
おすすめ情報