Dopo un test rapido, non sono sicuro che Chrome o Firefox eseguiranno il rendering di una tela così grande. La mia scommessa sarebbe creare un elemento canvas ma non aggiungerlo mai al DOM. Proprio come questo:
var hiddenCanvas = document.createElement('canvas');
hiddenCanvas.width = 128000;
hiddenCanvas.height = 128000;
var hiddenContext = hiddenCanvas.getContext('2d');
quindi creare un disegno più piccola che sarà effettivamente visualizzare una porzione della tua tela nascosto
<canvas width="something reasonable" height="something reasonable" id="viewCanvas"/>
e utilizzare il metodo drawImage per disegnare porzioni:
var viewCanvas = document.getElementById('viewCanvas');
var viewContext = viewCanvas.getContext('2d');
viewCanvasContext.drawImage(hiddenCanvas, 40, 50, viewCanvas.width, viewCanvas.height, 0, 0, viewCanvas.width, viewCanvas.height);
Poi spetterà a te fornire o pulsanti su/giù/destra/sinistra per navigare, o forse finte barre di scorrimento usando DIV da 20px che mostrerebbero solo barre di scorrimento e che vuoi agganciare a un onscroll ascoltatore anche su. E ogni volta che l'utente cambia posizione, effettua nuovamente una chiamata per disegnareImmagine, aggiornando le posizioni x/y (40 e 50 nel mio esempio).
Detto questo, ancora una volta, anche se nascosto, dubito che i browser funzioneranno con una tela così grande.
Mi sembra di essere alla ricerca di una soluzione allo stesso problema, quindi se nella tua ricerca sei fortunato, per favore condividi.
fonte
2012-10-16 20:52:30
Bene, se la tela sta disegnando la barra di scorrimento, allora non sarà realmente nativa. Cosa stai cercando di ottenere? –
Sono fondamentalmente alla ricerca di un modo per visualizzare una barra di scorrimento nativa da cui posso catturare gli eventi di scorrimento. :) – JohanShogun