私はJavascriptでシンプルなゲームエンジンに取り組んでいます(クレイジーです、私は知っています。)Operaのスクリーンショット:http://img406.imageshack.us/img406/5818/gamek.jpg タイル エンジンのように見えますが、実際にはオブジェクト ベースです。灰色のブロックの各行または列は、単一の <div> であり、表示領域 (赤い枠のボックス) に対して相対的に配置されます。表示領域にはoverflow: hiddenがあるため、オブジェクトはその外側には表示されません。
ただし、Opera は、これらのオブジェクトの高さのほとんどが切り取られているにもかかわらず、これらのオブジェクトの高さを合計ページの高さにまだ追加しています。スクロールバーが表示されず、 <html> 要素の周りの青いアウトラインが下に移動しないため、不思議です (また、 <body> 要素に配置しても)。しかし、下矢印を押すと、それらのオブジェクトがクリップされていても、それらのオブジェクトの下部が画面に表示されるまで、ページが下にスクロールします。これらのオブジェクトを削除すると問題が解決するため、これが事実であることがわかります。ゲームで南に移動すると、オブジェクトが元に戻り、ページの高さが減少するため、ページが元に戻ります。
私は Opera 10 を使用していますが、9 でも同じ問題がありました。Firefox はそれを問題なく処理します。この問題をどのように解決または回避しますか? 私が考えることができる CSS トリックはそれを行っていません。すべてのフレームで scroll(0,0) を呼び出すのはさらに悪いことです。ページは「下」にジャンプしてから上に戻ります。