gpt4 book ai didi

javascript - Vanilla js中是否存在偏移底部?

转载 作者:搜寻专家 更新时间:2023-10-31 23:19:30 27 4
gpt4 key购买 nike

我找到了这个粘性 div 代码段并对其进行了修改,使其在 div 到达页面顶部时看起来粘在窗口底部。我只是好奇是否有某种方法可以抵消底部。这是代码:-

let Sticky = (function() {
'use strict';

let CSS_CLASS_ACTIVE = 'is-fixed';


let Sticky = {
element: null,
position: 0,
addEvents: function() {
window.addEventListener('scroll', this.onScroll.bind(this));
},
init: function(element) {
this.element = element;
this.addEvents();
this.position = element.offsetTop ;
this.onScroll();
},
aboveScroll: function() {
return this.position < window.scrollY;
},
onScroll: function(event) {
if (this.aboveScroll()) {
this.setFixed();
} else {
this.setStatic();
}
},
setFixed: function() {
this.element.classList.add(CSS_CLASS_ACTIVE);
},
setStatic: function() {
this.element.classList.remove(CSS_CLASS_ACTIVE);
}
};

return Sticky;

})();


// Init Sticky
let sticky = document.querySelector('.sticky');
if (sticky) {
Sticky.init(sticky);
}

最佳答案

元素上没有 offsetBottom。顶部和左侧是用于计算偏移量的。如果您想了解更多信息,可以使用 getBoundingClientRect .它返回有关元素相对于视口(viewport)的位置的信息。你得到一个看起来像这样的对象:

{
bottom: 775,
height: 775,
left: 0,
right: 1322,
top: 0,
width: 1322
}

你可以这样调用它:

var firstDiv = document.getElementsByTagName('div')[0]
var rect = firstDiv.getBoundingClientRect()

关于javascript - Vanilla js中是否存在偏移底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45489545/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com