Domanda

Sto lavorando su un semplice motore di gioco in Javascript (pazzo, lo so.) Schermata di Opera: http://img406.imageshack.us/img406 /5818/gamek.jpg Sebbene sembri un motore a tessere, in realtà è basato su oggetti; ogni riga o colonna di blocchi grigi è una singola < div > ;, posizionata rispetto all'area di visualizzazione (riquadro con bordo rosso). L'area di visualizzazione ha un overflow: nascosto, quindi gli oggetti non vengono visualizzati al di fuori di esso.

Tuttavia, Opera sta ancora aggiungendo le altezze complete di questi oggetti all'altezza totale della pagina, anche se la maggior parte è troncata. È curioso perché non viene visualizzata alcuna barra di scorrimento e il contorno blu attorno a & Lt; html & Gt; L'elemento non si sposta verso il basso (né se lo metto sull'elemento < body >). Ma quando premo la freccia giù, la pagina scorre verso il basso, fino a quando la parte inferiore di quegli oggetti sarebbe sullo schermo, anche se sono ritagliati. Posso dire che questo è il caso perché la rimozione di quegli oggetti risolve il problema e mentre mi muovo a sud nel gioco, la pagina torna indietro, poiché gli oggetti si stanno spostando di nuovo verso l'alto e riducendo così l'altezza della pagina.

Sto usando Opera 10, ma ho avuto lo stesso problema con 9. Firefox lo gestisce bene. Come risolverei o aggirerei questo problema? Nessun trucco CSS a cui riesco a pensare lo ha fatto, e chiamare scroll (0,0) ogni fotogramma è ancora peggio: la pagina passa al & Quot; bottom & Quot ;, quindi torna all'inizio.

È stato utile?

Soluzione

è un bug noto in Opera che puoi scorrere fino al contenuto che dovrebbe essere overflow: nascosto.

Ora, se gestisci l'evento keypress con JavaScript e chiami event.preventDefault () per la pressione dei tasti freccia, impedirà lo scorrimento. (Non funziona per impedire l'azione predefinita dell'evento keydown, deve essere premuto il tasto). Questo aiuta?

Altri suggerimenti

Questo problema si sta verificando anche in Safari? In tal caso potrebbe trattarsi di un problema tecnico specifico di WebKit.

O forse specificare un max-height per quell'elemento potrebbe impedire a quell'oggetto di ridimensionare la finestra del browser.

Anche il codice sorgente sarebbe carino =)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top