Я только начал работать с элементом холста html5.html5 масштабирование холста без указания размеров
Я использую новейшие браузеры firefox и chromium. И пока они отвечают так же, как и .
То, что я пытаюсь достичь, - это масштабирование изображения без необходимости указать размеры холста или рисунка изображения. Я хотел бы, чтобы холст заполнил в окне браузера, а для изображения заполнить холст без , указав любые размеры. И чтобы перетащить холст и его изображение на летать, когда пользователь настраивает рамку браузера.
Особняк, который я тестирую, - 4284x2844.
Мне удалось добиться динамического масштабирования, но есть проблема ... Если я не укажу размеры, изображение станет размытым.
Это мой первый вопрос об использовании stackoverflow, и я не завоевал форматирование . Поэтому, пожалуйста, обратите внимание на небольшое количество кода над на Pastebin:
Спасибо за вашу помощь.
Я нашел решение ...
Добавление двух линий, без каких-либо других изменений, сделал трюк, хотя в данный момент я не совсем уверен, почему он изначально был провал, но полностью счастлив двигаться на ...
<canvas id="taba_main_canvas">
Your browser does not support the canvas element.
</ canvas>
<script type="text/javascript">
var main_canvas=document.getElementById("taba_main_canvas");
var cxt=main_canvas.getContext("2d");
// adding these next two lines solved the blurriness issues
//Set the canvas width to the same as the browser
main_canvas.width = window.innerWidth;
main_canvas.height = window.innerHeight;
var img=new Image();
<!-- mansion pic 4284x2844 -->
img.src="images/mansion_3344.png";
img.onload = function()
{
<!-- use the graphics full size and scale the canvas in css -->
cxt.drawImage(img,0,0,main_canvas.width,main_canvas.height);
}
</script>
просто одна крошечной проблемы, вертикальный размер изображения, видимо, лишь несколько строк выше чем холст и поэтому я получаю vertival скроллбар. Перетаскивание окна браузера выше, что обычно устраняет вертикальную полосу прокрутки, эффект не влияет. Я попытался манипулировать холстом или высотой изображения в коде, но это ничего не изменило.
Тем не менее, если изображение выглядит чистым, это большая победа. На данный момент я перехожу к этому вопросу и вернусь к этому .
@ mjbjr77: какое решение? Что почему? –