Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   offsetTop можно ли использовать (https://javascript.ru/forum/dom-window/80194-offsettop-mozhno-li-ispolzovat.html)

Сергей Ракипов 07.05.2020 10:09

offsetTop можно ли использовать
 
Прочитал что этот метод устарел, и я не понял он что стал не рабочим или как с var его заменили на let но его до сих пор без проблем можно писать.

Если устарел то чем его заменить.

Сергей Ракипов 07.05.2020 10:12

И там написано что он просчитывает от родителя, родитель определяется версткой?

рони 07.05.2020 10:30

Цитата:

Сообщение от Сергей Ракипов
родитель определяется версткой?

Цитата:

ближайший предок, который удовлетворяет следующим условиям:

Является CSS-позиционированным (CSS-свойство position равно absolute, relative, fixed или sticky),
или <td>, <th>, <table>,
или <body>
https://learn.javascript.ru/size-and...offsetleft-top

Сергей Ракипов 07.05.2020 11:04

Цитата:

Сообщение от рони (Сообщение 523918)

прочитал понял, но не понял что значит устарел

Nexus 07.05.2020 13:31

Цитата:

Сообщение от Сергей Ракипов
Прочитал что этот метод устарел

Где прочитали?

Сергей Ракипов 07.05.2020 14:22

Цитата:

Сообщение от Nexus (Сообщение 523925)
Где прочитали?

https://learn.javascript.ru/coordina...y-metod-offset

Nexus 07.05.2020 15:20

Сергей Ракипов, там говорится не о том, что метод offsetTop устарел. Там говорится о том, что более нет никакой нужны получать координаты блока на странице с помощью суммирования offsetTop всех родительских элементов блока, т.к. появился метод getBoundingClientRect, который делает это проще и точнее названного выше варианта.

Надеюсь понятно объяснил.

Сергей Ракипов 07.05.2020 16:27

Цитата:

Сообщение от Nexus (Сообщение 523928)
Сергей Ракипов, там говорится не о том, что метод offsetTop устарел. Там говорится о том, что более нет никакой нужны получать координаты блока на странице с помощью суммирования offsetTop всех родительских элементов блока, т.к. появился метод getBoundingClientRect, который делает это проще и точнее названного выше варианта.

Надеюсь понятно объяснил.

Буду разбиратся с этим getBoundingClientRect

Сергей Ракипов 09.05.2020 15:08

Почему не сработало
const imgArticle = document.querySelector(".img_article");

function onScroll() {
  let posTop = imgArticle.getBoundingClientRect().top;
  
  if(posTop = 0) {
	  imgArticle.style.display = "fixed";
  }
}

document.addEventListener("scroll", onScroll);

console.log(imgArticle.getBoundingClientRect().top);


У меня есть блок который достигает вверх страницы и должен зафиксироваться

рони 09.05.2020 15:15

Сергей Ракипов,
6 строка


Часовой пояс GMT +3, время: 17:39.