那么,当事件被触发时,我如何知道滚动方向呢?
在返回的对象中,我看到的最接近的可能性是与boundingClientRect
保存最后滚动位置的那种交互,但我不知道处理boundingClientRect
是否会导致性能问题。
是否可以使用交叉事件来确定滚动方向(上/下)?
我已经添加了这个基本片段,所以如果有人可以帮助我。
我将非常感激。
这是片段:
var options = {
rootMargin: '0px',
threshold: 1.0
}
function callback(entries, observer) {
entries.forEach(entry => {
if (entry.isIntersecting) {
console.log('entry', entry);
}
});
};
var elementToObserve = document.querySelector('#element');
var observer = new IntersectionObserver(callback, options);
observer.observe(elementToObserve);
#element {
margin: 1500px auto;
width: 150px;
height: 150px;
background: #ccc;
color: white;
font-family: sans-serif;
font-weight: 100;
font-size: 25px;
text-align: center;
line-height: 150px;
}
<div id="element">Observed</div>
我想知道这一点,所以我可以在固定标题菜单上应用它来显示/隐藏它