
■前提
・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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでフォームのListbo...
-
Excelでワードアートや図を常に...
-
TikTokLiteの自動スクロールの...
-
アコーディオンで開かれたパネ...
-
リストビューをスクロールさせ...
-
Visual Basicから Spreadのスク...
-
vb,netでtextboxの文字を右から...
-
一体の時間が経過してからCSSの...
-
Excelの質問で票の途中に...
-
階層フレキシブルコントロール...
-
PDFを(htmlのように)無限に縦...
-
MSFlexGridのスクロールバー位置
-
Dreamweaverで作ったサイトの不...
-
複数の画像を横にスクロールさ...
-
ページ訪問時にiframe内を自動...
-
ポストバック時のスクロール位...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
マイページはどこを開くの
-
「Cancel = True」とはどういう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
エクセルVBAでフォームのListbo...
-
TikTokLiteの自動スクロールの...
-
マウスオーバー→ホイール回転で...
-
vb,netでtextboxの文字を右から...
-
大きい表へのスクロールバーの...
-
アコーディオンで開かれたパネ...
-
Visual Basicから Spreadのスク...
-
webページで横方向にアンカーを...
-
ページ読み込み時に自動でスク...
-
ページ訪問時にiframe内を自動...
-
文章の自動スクロール
-
リストボックスをクリックした...
-
グループボックス内のコンボボ...
-
JTableの行ヘッダーを非表示に...
-
ジャバスクリプトを教えて下さい
-
スクロールボタンを押してもス...
-
このサイトのスクロール逆じゃ...
おすすめ情報