我有几个position:fixed;
div。当我向下滚动时,我希望第一个div显示为“擦除”第二个,依此类推其他几个div。
我该如何编码呢?感谢。
答案 0 :(得分:0)
是的,你可以:
<div class="divFixed">fixed</div>
<div class="divFlow">...lots of content</div>
.divFixed {
position: fixed;
z-index: 10;
background: red;
height: 100px;
width: 100%;
}
.divFlow {
position: absolute;
z-index: 20;
background: yellow;
margin-top: 100px;
width: 50%;
}
<强> JSFiddle DEMO 强>
答案 1 :(得分:0)
您可以比较初始元素的顶部位置值和当前窗口的scrollTop位置,并根据需要将位置从固定更改为绝对:
$(function () {
var divs = $('#div1, #div2, #div3');
divs.each(function(){
$(this).attr('data-top', $(this).position().top);
});
$(window).scroll(function() {
var scrollTop = $(window).scrollTop();
divs.each(function(){
var datatop = $(this).attr('data-top');
if (datatop > scrollTop) {
this.style.position = 'absolute';
this.style.top = datatop + 'px';
} else {
this.style.position = 'fixed';
this.style.top = '0px';
}
});
});
});