Confundido acerca de la función getBoundingClientRect() en Javascript.
Según el documento oficial, si const rect = getBoundingClientRect(); , entonces tenemos
rect.width = rect.right - rect.left; rect.height = rect.bottom - rect.top;¿Significa que la posición izquierda derecha es izquierda inclusiva y derecha exclusiva, es decir [izquierda, derecha]? De lo contrario, debería ser
rect.height = rect.bottom - rect.top + 1; Observa el siguiente mapa de 5x5 . En el modo [inclusive, inclusive] , el rectángulo delimitador todos los 1 debe ser left=2, right=4, top=3, bottom=4 , y tenemos
width=right-left+1=4-2+1 height=bottom-top+1=4-3+1Rejilla 5x5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1Una pregunta más específica:
¿Qué significa rect.left ? ¿Significa que la distancia a la izquierda del contenedor del cliente o el i -ésimo píxel? ¿Qué pasa con rect.right ?
Considérelo de esta manera:
Si el cuadrado gris representa el espacio de la pantalla, entonces el cuadrado rojo tiene un cuadro delimitador:
{ x: 1, y: 1, width: 3, height: 3 } Lo que significa que tiene left=1 , right=4 , y por lo tanto, right-left=width