Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

418
Visualizações
¿Cómo puede el HTML Canvas ser de altura completa, pero mantener la relación de aspecto con su imagen de fondo?

Quiero que un lienzo html tenga una imagen de fondo y quiero que mi dibujo en esa imagen de fondo mantenga su ubicación cuando cambie el tamaño de la imagen. También quiero que el lienzo ocupe toda la pantalla. Puedo mantener el dibujo del lienzo alineado con la imagen de fondo cuando la altura del lienzo es la misma que la altura calculada de la imagen de fondo. Pero cuando el lienzo tiene el tamaño de pantalla completa, cambiar el tamaño del lienzo aplasta el dibujo y no se mantiene alineado con la imagen de fondo.

el lienzo no se alinea con la imagen de fondo cuando canvas.style.height es 100% ingrese la descripción de la imagen aquí

el lienzo se mantiene alineado con la imagen de fondo, pero el lienzo no tiene el tamaño completo ingrese la descripción de la imagen aquí

Y aquí está el código utilizado para el controlador de eventos de cambio de tamaño:

 const onResize = () => { let backgroundImageWidth, backgroundImageHeight; const backgroundImageSource = document.querySelector("#responsive-canvas") .style.backgroundImage; const problemBackgroundImage = new Image(); problemBackgroundImage.onload = function () { let aspect_ratio = this.width / this.height; backgroundImageWidth = 0.45 * window.innerWidth; backgroundImageHeight = backgroundImageWidth / aspect_ratio; const calculatedHeight = window.innerWidth / aspect_ratio; let img = document.createElement("img"); img.src = dataURL; // dataURL is the value of canvas.toDataURL() canvas.width = window.innerWidth; canvas.height = calculatedHeight; canvas.style.height = calculatedHeight; // commenting out this line gives me the fullsize canvas, but the drawing does not line up. img.onload = function () { context.drawImage(img, 0, 0, canvas.width, canvas.height); context.restore(); }; }; };
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda