Още за размерите и позицията
Пълен достъп до курса: Не
За пълен достъп или безплатна проба (2 модула), моля влезте или се регистрирайте.
getBoundingClientRect() – координати спрямо viewport-а
Методът getBoundingClientRect() връща размерите и позицията на елемент спрямо видимата част на браузъра (viewport-а). За разлика от offsetTop и offsetLeft, които са спрямо родителския елемент, тук координатите се променят при скрол. Ако елементът излезе извън екрана, стойности като top и bottom могат да станат отрицателни.
Това е ключово: използвайте getBoundingClientRect(), когато ви интересува къде се намира елементът на екрана в момента, а не в документа като цяло.
Стъпка по стъпка: как да тествате поведението
- Изберете елемент от DOM-а (например
h1). - Извикайте метода
getBoundingClientRect()върху него. - Запишете резултата в конзолата.
- Скролирайте страницата и отново извикайте метода.
- Наблюдавайте как се променят
topиbottom, докатоwidthиheightостават същите.
Така ясно ще видите разликата между координати спрямо viewport и координати спрямо родител.
Основни свойства и методи
getBoundingClientRect()– връща обект сtop,bottom,left,right,width,heightспрямо viewport-аoffsetTop– разстояние от родителския елементoffsetLeft– хоризонтално отстояние спрямо родителяoffsetWidth– ширина на елементаoffsetHeight– височина на елемента
Важно уточнение: width и height от getBoundingClientRect() могат да съвпадат с offset стойностите, но отразяват реалното съдържание на елемента, включително случаи, когато вътрешни елементи излизат извън него.