저는 이것이 당신이 성취하려고하는 행동이라고 생각합니다. 나는 당신이 단지 하나의 Image
객체를 생성 할 필요가 있도록 (그리고 코드를 더 쉽게 따라갈 수 있도록 변수 이름을 영어로 변경해야하기 때문에) 그것을 리팩토링했다. 바라건대 코드가 어떻게 작동하는지 분명하다. 의견이 있으시면 언제든지 문의하십시오. 이 코드를 사용하려면 body onload 속성을 "draw();"
대신 "setupBackground();"
으로 변경해야합니다.
function setupBackground() {
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
function draw() {
canvas.width = 0;
canvas.height = 0;
var divHeight = div.scrollHeight;
var divWidth = div.scrollWidth;
var yScale = divHeight/img.height;
var xScale = divWidth/img.width;
var newImgHeight = img.height * xScale;
var newImgWidth = divWidth;
if (divHeight >= newImgHeight) {
newImgHeight = divHeight;
newImgWidth = img.width * yScale;
}
canvas.width = divWidth;
canvas.height = divHeight;
ctx.drawImage(img,0,0,newImgWidth,newImgHeight);
}
var img = new Image();
img.onload = function() {
window.onresize = draw;
draw();
}
img.src = 'ad.jpg';
};