1

私はJavascriptでシンプルなゲームエンジンに取り組んでいます(クレイジーです、私は知っています。)Operaのスクリーンショット:http://img406.imageshack.us/img406/5818/gamek.jpg タイル エンジンのように見えますが、実際にはオブジェクト ベースです。灰色のブロックの各行または列は、単一の <div> であり、表示領域 (赤い枠のボックス) に対して相対的に配置されます。表示領域にはoverflow: hiddenがあるため、オブジェクトはその外側には表示されません。

ただし、Opera は、これらのオブジェクトの高さのほとんどが切り取られているにもかかわらず、これらのオブジェクトの高さを合計ページの高さにまだ追加しています。スクロールバーが表示されず、 <html> 要素の周りの青いアウトラインが下に移動しないため、不思議です (また、 <body> 要素に配置しても)。しかし、下矢印を押すと、それらのオブジェクトがクリップされていても、それらのオブジェクトの下部が画面に表示されるまで、ページが下にスクロールします。これらのオブジェクトを削除すると問題が解決するため、これが事実であることがわかります。ゲームで南に移動すると、オブジェクトが元に戻り、ページの高さが減少するため、ページが元に戻ります。

私は Opera 10 を使用していますが、9 でも同じ問題がありました。Firefox はそれを問題なく処理します。この問題をどのように解決または回避しますか? 私が考えることができる CSS トリックはそれを行っていません。すべてのフレームで scroll(0,0) を呼び出すのはさらに悪いことです。ページは「下」にジャンプしてから上に戻ります。

4

2 に答える 2

0

この問題はサファリでも発生していますか?もしそうなら、それはWebKit固有の不具合である可能性があります。

または、その要素にforを指定するmax-heightと、そのオブジェクトがブラウザウィンドウのサイズを変更できなくなる可能性があります。

また、ソースコードもいいでしょう=)

于 2009-09-14T04:32:45.160 に答える
0

overflow:hidden であることが意図されているコンテンツにスクロールできることは、Opera の既知のバグです。

ここで、 JavaScript でkeypressイベントを処理し、矢印キーの押下に対して event.preventDefault() を呼び出すと、スクロールが防止されます。(keydown イベントのデフォルト アクションを防ぐためには機能しません。keypress でなければなりません)。それは役に立ちますか?

于 2010-11-18T03:25:37.887 に答える