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

119
Visualizações
¿Cómo tener en cuenta el relleno circundante en el lienzo?

Tengo un lienzo en mi formulario de consentimiento donde los usuarios firmarán y los datos se guardarán como datos base64.

El único problema es que el lienzo respeta el relleno de los controles que lo rodean, por lo que la esquina superior izquierda de mi lienzo ya no es la esquina superior izquierda:

 <div class="p-3"> <div class="card"> <div class="card-body"> <form method="post"> <canvas width="400" height="400" id="can"></canvas> </form> </div> </div> </div>

Habría hecho un fragmento, pero soy demasiado estúpido para agregar arranque a la maldita cosa.

En este ejemplo, la clase p-3 agrega relleno, la div de la card agrega relleno y el card-body también podría funcionar.

El resultado es que ahora estoy dibujando al menos un par de píxeles por debajo ya la derecha de donde está realmente el cursor.

En la imagen aquí, el cursor está exactamente en el extremo derecho de la línea dibujada.

¿Cómo ajusto esto al dibujar la línea?

Al dibujar, JS usa la altura y el ancho del cliente para colocar los puntos contra los desplazamientos del lienzo ... al menos eso es lo que entiendo de todos modos (nunca antes había trabajado con el lienzo).

 prevX = currX; prevY = currY; currX = e.clientX - canvas.offsetLeft; currY = e.clientY - canvas.offsetTop; draw();

Dado que el cliente no está cambiando, asumo que el relleno se agrega a las compensaciones... pero no sé qué hacer al respecto.

CUALQUIER ayuda es apreciada.

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Luché con esto bastante yo mismo. Aquí está la solución que encontré que funciona mejor:

 // Mouse positions relative to canvas const canvasBoundingClientRect = canvas.getBoundingClientRect(); const mouseX = e.pageX - canvasBoundingClientRect.left; const mouseY = e.pageY - canvasBoundingClientRect.top;

La función getBoundingClientRect() le dará la posición de su lienzo en relación con su ventana gráfica.

También se prefiere e.pageX/Y en caso de que pueda desplazarse por su página. Aquí está la explicación de la diferencia entre pageX/Y y clientX/Y.

about 4 years ago · Juan Pablo Isaza Relatório
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