2016-01-18 20 views
6

Quando si utilizza un oggetto intervallo su getBoundingClientRect in IE11, esso riporta numeri errati. Segnala l'altezza come 128 mentre l'altezza effettiva è 74. Riporta l'offset superiore come 8 mentre l'attuale offset superiore è 35.getBoundingClientRect errato su un elemento intervallo in Windows/IE11

Si tratta di un errore noto? C'è un modo per ottenere numeri precisi per una selezione in windows ie11.

var div = document.querySelectorAll('div')[0]; 
 
var t = div.childNodes[0]; 
 
var range = document.createRange(); 
 
range.setStart(t, 0) 
 
range.setEnd(t, 1) 
 

 
console.log(range.getBoundingClientRect())
div.text { 
 
    font-size: 64px; 
 
    line-height: 1em; 
 
}
<div class="text">T</div>

Ecco uno screenshot di riferimento:

enter image description here

+0

Puoi provare la definizione di un font-family e riprovare. Assicurati anche che lo zoom del browser sia al 100%. –

risposta

2

EDIT:

Per me, Win 7 64bit IE11.0.9600, esegue il frammento di console dice:

[object ClientRect]{bottom: 72, constructor: ClientRect {...}, height: 64, left: 8, right: 47.090000152...", top: 8, width: 39.090000152..."} 

che corrisponde grosso modo FF 47.0.1 valori:

DOMRect { x: 8, y: 3.3333282470703125, width: 38.5, height: 73.33334350585938, top: 3.3333282470703125, right: 46.5, bottom: 76.66667175292969, left: 8 } 
+0

Sono seccato che quando ho postato questo i numeri che ho ricevuto erano così drasticamente diversi da quelli che ottengo ora nello stesso ambiente virtuale di Windows. Non sono sicuro di cosa sia cambiato, ma quello che vedo ora corrisponde a quello che vedi anche tu. – StefanHayden

Problemi correlati