質問

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

ただし、Operaは、ほとんどのオブジェクトがクリップされていても、これらのオブジェクトの全高をページ全体の高さに追加しています。スクロールバーが表示されず、<!> lt; html <!> gt;の周りに青いアウトラインが表示されるため、好奇心が強いです。要素は下に移動しません(<!> lt; body <!> gt;要素に配置しても)。しかし、下矢印を押すと、それらのオブジェクトがクリップされていても、それらのオブジェクトの下部が画面に表示されるまで、ページが下にスクロールします。 これらのオブジェクトを削除することで問題が解決し、オブジェクトが上に移動してページの高さが減少するため、ゲーム内を南に移動するとページが上にスクロールするため、これが事実だと言えます。

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

役に立ちましたか?

解決

Operaの既知のバグであり、overflow:hiddenを意図したコンテンツにスクロールできます。

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

他のヒント

この問題はサファリでも発生していますか?その場合、WebKit固有のグリッチである可能性があります。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top