После быстрого теста я не уверен, что Chrome или Firefox даже сделают холст таким большим. Моя ставка заключалась бы в создании элемента canvas, но никогда не добавляйте его в DOM. Так же, как это:
var hiddenCanvas = document.createElement('canvas');
hiddenCanvas.width = 128000;
hiddenCanvas.height = 128000;
var hiddenContext = hiddenCanvas.getContext('2d');
Затем создайте меньший холст, который будет на самом деле отображать часть вашего скрытого холста
<canvas width="something reasonable" height="something reasonable" id="viewCanvas"/>
и использовать метод DrawImage рисовать частей:
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);
Тогда вам будет либо предлагать кнопки вверх/вниз/вправо/влево, чтобы перемещаться, или, может быть, поддельные полосы прокрутки, используя 20-кратные широкие DIV, которые будут показывать только полосы прокрутки и которые вы нажмете на onrollroll даже слушатель. И каждый раз, когда пользователь меняет позицию, повторите вызов drawImage, обновив позиции x/y (40 и 50 в моем примере).
Сказав это, опять же, даже если скрытый я сомневаюсь, что браузеры будут работать с холстом, который большой.
Я, случается, ищу решение одной и той же проблемы, поэтому, если в ваших исследованиях вам повезет, пожалуйста, поделитесь.
Ну, если холст рисует полосу прокрутки, то на самом деле она не будет родной. Чего вы пытаетесь достичь? –
Я в основном ищу способ показать собственную полосу прокрутки, с которой я могу перехватить события прокрутки. :) – JohanShogun