У меня есть элемент canvas, который автоматически загружает все окно браузера клиента при загрузке.На нем вы можете рисовать мышью, как в результате любого урока по созданию доски для рисования.Однако я хочу сделать так, чтобы, если вы переместите мышь в любой край холста (или, возможно, выберете определенный «move» -инструмент, вы можете перетащить холст в любом направлении).свитки.В частности, я хочу, чтобы теоретически можно было прокручивать бесконечно, поэтому я не могу предварительно сгенерировать, я должен генерировать «больше холста» на лету.Кто-нибудь имеет какие-либо идеи о том, как это сделать?
Если это поможет, это прямо сейчас клиентский javascript: (html - это просто холст-тег)
$(document).ready(function() {
init();
});
function init() {
var canvas = document.getElementById('canvas')
, ctx = canvas.getContext('2d')
, width = window.innerWidth
, height = window.innerHeight;
// Sets the canvas size to be the same as the browser size
canvas.width = width;
canvas.height = height;
// Binds mouse and touch events to functions
$(canvas).bind({
'mousedown': startDraw,
'mousemove': draw,
'mouseup': stopDraw,
});
};
// Triggered on mousedown, sets draw to true and updates X, Y values.
function startDraw(e) {
this.draw = true;
this.X = e.pageX;
this.Y = e.pageY;
};
// Triggered on mousemove, strokes a line between this.X/Y and e.pageX/Y
function draw(e) {
if(this.draw) {
with(ctx) {
beginPath();
lineWidth = 4;
lineCap = 'round';
moveTo(this.X, this.Y);
lineTo(e.pageX, e.pageY);
stroke();
}
this.X = e.pageX;
this.Y = e.pageY;
}
};
// Triggered on mouseup, sets draw to false
function stopDraw() {
this.draw = false;
};