use getBoundingClientRect