
■前提
・JavaScriptで「上下左右キー」を利用してある動作をしています
・普通のページだと「上下左右キー」が問題なく使えます
■困っていること
・ところが、縦長のページの時だけ、「上下キー」を押すと、ページスクロールしてしまい、思ったような動作ができません
・左右キーは、使えます
■質問
・JavaScriptのところにマウスをおくと、「上下キー」はそのJavaScriptに対して有効になるようにするにはどうすれば良いでしょうか?
・もしくは、「ページスクロール」しなくて良いので、「上下キー」は常にそのJavaScriptに対して有効になるようにするにはどうすれば良いでしょうか?
No.3ベストアンサー
- 回答日時:
こんにちは。
>縦長のページの時だけ、「上下キー」を押すと、ページスクロールしてしまい、
>思ったような動作ができません
通常のブラウザの仕様ですので、それを変えない方がユーザにとってはわかり易い操作になりませんか?
>JavaScriptのところにマウスをおくと、「上下キー」はそのJavaScriptに対して
>有効になるようにするにはどうすれば良いでしょうか?
「JavaScriptのところにマウスをおくと」が、どのような操作を意味しているのか不明ですが、ブラウザのあるエリアにマウスがある時にキーによるスクロールを無効にすることは不可能ではありません。
そのような条件が揃った時に、スクリプトから event.returnValue = false(IE)、event.preventDefault()(Fx他)を実行することでキーイベントをキャンセルすることが可能です。
>「上下キー」は常にそのJavaScriptに対して有効になるように
>するにはどうすれば良いでしょうか?
上下キーがスクリプトを無効にしてはいないはずです。スクリプトを実行した上で、本来の処理もされているだけではないでしょうか?
スクリプトの内容が、スクロールを制御するような内容の場合は、機能の内容が矛盾するために処理されていないように見えることはあるかも知れません。
そもそも、ローカルルールで設定するキーの機能を、わざわざデフォルトの機能に被せて設定することに疑問を感じます。
テンキーの8、2など他のキーに割り当てるとか、ブラウザ上に操作用の方向キーを表示してそれをマウスで操作するとかの発想転換はありえないのでしょうか。(操作の目的が不明なので、なんともわかりかねますが)
回答ありがとうございました
>通常のブラウザの仕様ですので、それを変えない方がユーザにとってはわかり易い操作になりませんか?
・確かにその通りなのですが…
No.2
- 回答日時:
[実行ボタン]などで、フォーカスをその要素に当たるようにする。
他の部分をクリックすると、ページがスクロールできるようにしておかなければなりません。
No.1
- 回答日時:
項目を分けた美しい文章形式ですが、動作環境や作品の詳細を書くとなおよいでしょう。
勝手に私が好きなIEで話を進めます。私が作ったことがある上下左右でキャラを動かすスマブラみたいな作品で話を進めます。
「■質問」の二番目への答えになると思いますが、
「あふれ出た部分(overflow)を隠しちゃう(hidden)」というスタイルシートによって、スクロール機能を抹殺することができます。
ページ全体に対して行うならば、
---
<body style="overflow:hidden;">
---
で解決するでしょう。
スクロールバーを残したいのであれば、心当たりがありますがテストが面倒なのでまずはこの辺で。
回答ありがとうございました。
今回はjsについて知りたかったのですが、試してみてどうしてもうまくいかない場合は、最終的にこの方法もありかな、と思いましたー
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Chrome(クローム) HPの様子が変わった 2 2022/03/25 05:37
- Windows 10 画面上の[タスクバー]の位置の変更 1 2022/06/12 21:10
- Mac OS MacBook Airに外付けテンキー(有線)を接続しましたが、認識してくれません。 MacBook 2 2022/10/08 19:10
- マウス・キーボード scroll Lockキーを解除したけれど。 1 2022/09/16 09:23
- Word(ワード) Word差し込み印刷 QRコードの画像が同じ仕様になる 1 2022/10/28 16:41
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- iOS これは日本語入力の大発明ですか? 7 2022/12/21 07:17
- マウス・キーボード ノートPCのHome,Endキーが動作しなくなって困っています。PgUp,PgDnも。 2 2022/07/30 20:50
- Word(ワード) Word2013 縦書き上下二段の表、改行を続けると次ページに情報が表示されるようにしたい 3 2022/06/16 09:24
- マウス・キーボード Tabキーとテンキーが右側にあるワイヤレスキーボード を探しています。 仕事上数字を入力することが多 3 2022/09/22 21:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GASでチェックボックスを一括of...
-
スマホ上で、左右スワイプで次...
-
Cookieに保存されない
-
初心者です。gulpでコンパイル...
-
Adobe acrobat proでフォームを...
-
画面遷移を行わずに同一ページ...
-
変数宣言と初期値代入の場所に...
-
switch文のswitch(n)の部分を複...
-
jsでは、'で区切った部分を改行...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
タグを教えてください。
-
jqueryのselect2で検索欄の文字...
-
jsonテキストデータの並び替え...
-
初心者です。gulpでコンパイル...
-
ラジオボタンを複数選択したと...
-
階層別の組織図の自動作成について
-
jQueryで同じクラス名のものを...
-
二次元配列を使って順位をだす...
-
読み込んだQRコードをフォーム...
-
画面遷移を行わずに同一ページ...
-
セレクトを全て選択されていな...
-
【Google Apps Script】「ライ...
-
Adobe acrobat proでフォームを...
-
二次元配列の全要素の全要素を...
-
【GAS】WEBアプリでハイパーリ...
-
GASでGoogleフォームの自動返信...
-
フォームが空欄の時にフォーム...
-
セレクトボックスで配列を呼び...
-
イラストレーター、縦中横のシ...
おすすめ情報