Я работаю над приложением для рисования, и я пытаюсь центрировать холст на середине экрана. Любые попытки, которые я сделал, были отключены (все еще в верхнем левом углу экрана), но визуально отображались в центре экрана. В принципе, он не рисует на холсте, когда я переместил его в центр экрана. Любая помощь будет высоко ценится, спасибо .... Я ИМЕЮ мой код НИЖЕ ...HTML5 Canvas (ПРОСТОЕ ПРИМЕНЕНИЕ КРАСКИ)
ответ
Это не ясно из вашего вопроса, как вы центрирования, но вы должны учитывать любое смещение элементов, укажите canvas
, когда вы попытаетесь отобразить положение мыши в позиции на canvas
. Вы можете сделать это, включив значения offsetLeft
и offsetTop
(см. docs) содержащего элемента при выполнении ваших расчетов.
Ниже будет работать, если вы компенсируя позицию div
, которая облегает canvas
(который я дал идентификатор, чтобы сделать его проще ссылаться):
function move(e) {
// Get the div containing the canvas. Would be more efficient to set this once on document load
var container = document.getElementById('container');
if((e.button == 0) && (mouseIsDown)) {
g.beginPath();
document.onselectstart = function(){ return false; }
//g.fillStyle = "red";
// Account for the offset of the parent when drawing to the canvas
g.arc((e.x - container.offsetLeft) - brush, (e.y - container.offsetTop) - brush, brush, 0, Math.PI * 2);
g.fill();
g.closePath();
}
}
И упрощенным демо с помощью ваша скрипка here.
Спасибо, я сменил div на 525px; top: 250px; и он положил его в центр, это было бы приемлемо? Как это работает? –
Вы, вероятно, не хотите полностью позиционировать его, если хотите, чтобы он был центрирован независимо от размера окна. Я просто сделал это так, потому что это был быстрый способ продлить тест. Я бы предположил использовать что-то вроде margin: 0 auto. Но в любом случае метод должен работать. –
О, хорошо, спасибо, очень много вы спасли мне много неприятностей, я был застрял в течение долгого времени! Еще раз спасибо! –
Ваш код не указан ниже. –
Я не могу написать свой код, потому что моя репутация ниже 10. В любом месте я могу опубликовать его, чтобы вы могли видеть? –
[jsfiddle] (http://jsfiddle.net/) было бы лучше, чем ничего. –