Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
getBoundingClientRect vs offset
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36
Browser:
Chrome Mobile 128
Operating system:
Android
Device Platform:
Mobile
Date tested:
one year ago
Test name
Executions per second
getBoundingClientRect
93081.0 Ops/sec
getLocalDOMRect
18475.0 Ops/sec
Access offset properties directly
48752.2 Ops/sec
HTML Preparation code:
<div id="el" style="transform: rotateZ(45deg)"> <h2>Lorem ipsum dolor sit amet</h2> </div>
Script Preparation code:
function getLocalDOMRect(el) { let offsetTop = 0; let offsetLeft = 0; const width = el.offsetWidth; const height = el.offsetHeight; while (el instanceof HTMLElement) { offsetTop += el.offsetTop; offsetLeft += el.offsetLeft; el = el.offsetParent; } return new DOMRect(offsetLeft, offsetTop, width, height); } const el = document.getElementById("el");
Tests:
getBoundingClientRect
const { left, right, top, bottom } = el.getBoundingClientRect();
getLocalDOMRect
const { left, right, top, bottom } = getLocalDOMRect(el);
Access offset properties directly
const { offsetWidth, offsetHeight, offsetTop } = el;