2016-01-18 15 views
6

Podczas używania obiektu zasięgu do getBoundingClientRect w IE11 zgłasza niepoprawne liczby. Zgłasza wysokość jako 128, a rzeczywista wysokość to 74. Raportuje górne przesunięcie jako 8, a rzeczywiste przesunięcie górne wynosi 35.getBoundingClientRect niepoprawny element zakresu w Windows/IE11

Czy to znany błąd? Czy istnieje sposób na uzyskanie dokładnych liczb dla zaznaczenia w systemie 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>

Oto zrzut ekranu dla odniesienia:

enter image description here

+0

można spróbować definiowania font-family i spróbuj ponownie. Upewnij się także, że powiększenie przeglądarki wynosi 100%. –

Odpowiedz

2

EDIT:

Dla mnie, Win 7 64bit IE11.0.9600, bieganie Twój fragment konsola mówi:

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

co w przybliżeniu odpowiada FF 47.0.1 wartości:

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

Jestem zirytowany, że kiedy to opublikowałem, liczby, które otrzymałem, były tak drastycznie różne od tego, co otrzymuję teraz w tym samym środowisku wirtualnym Windows. Nie jestem pewien, co się zmieniło, ale to, co teraz widzę, pasuje do tego, co widzisz. – StefanHayden