在如下的吸顶效果的代码中,当滚动条滚动时,会频繁触发事件,导致红条div一闪一闪的,请问该如何解决这个问题?(貌似需要用到防抖和节流的知识,可否分别给出利用防抖和节流的方法)
点击↓
https://jsfiddle.net/20170808...
$(window).scroll(function () {
if($(window).scrollTop() > $('div').offset().top){
$('div').css('position','fixed');
$('div').css('top',0);
}else{
$('div').css('position','absolute');
$('div').css('top',170);
}
});
这个跟scroll事件的刷新频率没有半毛钱关系,而是
$('div').offset().top
放在scroll事件里,每次滚动,都会重新计算div离顶部的距离,导致抖动,只需要事件开始前保存div的起始top值即可,代码如下:主要是加粗部分:
预览:https://codepen.io/IKobeCan/f...