我有一个固定的页脚,它在触发滚动事件时展开,并在最后一次滚动或移动 1500 毫秒后缩小。
下面是生产脚本的简化版本,我在其中使用 lodash 节流阀并在销毁组件时删除事件侦听器。
var
el = document.getElementsByTagName('div')[0],
timer
;
function rest(){
clearTimeout(timer);
timer = setTimeout(() => {
el.classList.add("rest");
}, 1500);
el.classList.remove("rest");
}
window.addEventListener('scroll', rest);
i {
display:block;
height: 100px;
background: gray;
margin: 50px 20px;
list-style:none;
}
div {
position: fixed;
bottom: 0;
height: 50px;
width: 100%;
background: blue;
transition: all 0.6s;
}
.rest {
height: 20px;
background: red;
}
<i></i>
<i></i>
<i></i>
<i></i>
<i></i>
<div class="rest"></div>
我刚开始使用交叉点观察器,我想知道如何实现相同的行为,因为它是一个固定元素,没有交叉点,我能想到的唯一方法是创建一个“哨兵”元素并更改其位置每个路口,这似乎是一种矫枉过正,违背了包括路口观察者“性能”的主要目的
所以没有明确的想法,我转向你们和你们的专业知识。