Просмотр полной версии : offsetTop можно ли использовать
Сергей Ракипов
07.05.2020, 10:09
Прочитал что этот метод устарел, и я не понял он что стал не рабочим или как с var его заменили на let но его до сих пор без проблем можно писать.
Если устарел то чем его заменить.
Сергей Ракипов
07.05.2020, 10:12
И там написано что он просчитывает от родителя, родитель определяется версткой?
родитель определяется версткой?
ближайший предок, который удовлетворяет следующим условиям:
Является CSS-позиционированным (CSS-свойство position равно absolute, relative, fixed или sticky),
или <td>, <th>, <table>,
или <body>
https://learn.javascript.ru/size-and-scroll#offsetparent-offsetleft-top
Сергей Ракипов
07.05.2020, 11:04
https://learn.javascript.ru/size-and-scroll#offsetparent-offsetleft-top
прочитал понял, но не понял что значит устарел
Прочитал что этот метод устарел
Где прочитали?
Сергей Ракипов
07.05.2020, 14:22
Где прочитали?
https://learn.javascript.ru/coordinates-document#ustarevshiy-metod-offset
Сергей Ракипов, там говорится не о том, что метод offsetTop устарел. Там говорится о том, что более нет никакой нужны получать координаты блока на странице с помощью суммирования offsetTop всех родительских элементов блока, т.к. появился метод getBoundingClientRect, который делает это проще и точнее названного выше варианта.
Надеюсь понятно объяснил.
Сергей Ракипов
07.05.2020, 16:27
Сергей Ракипов, там говорится не о том, что метод 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:19
Сергей Ракипов,
6 строка
так говорится что когда переменная posTop приобретет значение 0 то нужно сделать...
Сергей Ракипов
09.05.2020, 15:30
а точно не присвоить а равенство ==
Сергей Ракипов
09.05.2020, 15:32
let 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:34
Все я все понял, увидел грубую ошибку в css простите что занимаю ваше время своей не внимательностью
Сергей Ракипов
10.05.2020, 08:45
let imgArticle = document.querySelector(".img_article");
function onScroll() {
let scrollTop = document.querySelector("body").getBoundingClientRect().top;
if(scrollTop >= 0 & scrollTop <= -220){
imgArticle.style.position = "absolute";
imgArticle.style.top = "0";
}
else if(scrollTop >= -220 & scrollTop <= -500){
imgArticle.style.position = "fixed";
imgArticle.style.top = "0";
}
else{
imgArticle.style.position = "absolute";
imgArticle.style.top = "280" + "px";
}
console.log(scrollTop);
}
document.addEventListener("scroll", onScroll);
Скажите я условия что ли не правильно пишу, у меня сразу else переходит
Отрицательные значение как то по другому пишутся
я условия что ли не правильно пишу
:yes:
Сергей Ракипов
10.05.2020, 10:38
:yes:
Точно забыл что больше, а что меньше в математике со значением минус.
Сергей Ракипов,
if(scrollTop >= 0 & scrollTop <= -220){
Сергей Ракипов
10.05.2020, 12:16
рони,
Спасибо я разобрался
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot