显示/隐藏div jquery无法在固定位置工作

时间:2014-09-08 07:10:36

标签: jquery css

显示/隐藏div使用jquery在div wrapperposition:fixed时无法正常工作,但如果,则更改为position:relative show / hide {{1 }} 回去工作。

这是 fiddle of position:relative

这是div div未显示的fiddle of position:fixed

show/hide

有人有想法......

4 个答案:

答案 0 :(得分:2)

那是因为你的代码在这里

$(document).scroll(function(){

因此,如果您滚动scroll functiondocumentbody将有效,但由于您使用的是position: fixedscrollbar中的body {1}},但scrollbar位于

<div id="right">
    ...
</div>

这使scroll function永远不会被调用,因此您需要更改

$(document).scroll(function(){
    ...
});

$("#right").scroll(function(){    // Depend on the container that use the position: fixed;
    ...
});

这是Updated Fiddle

答案 1 :(得分:0)

原因是fixed位置自动设置lefttop 0,但relative位置设置为父标记的相对位置。

设置下面的css应该可以解决问题:

top:20px

答案 2 :(得分:0)

我的猜测是#right{position: relative/fixed }对行为有影响。

position: fixed:元素相对于浏览器窗口定位。

position: relative:元素相对于其正常位置定位。

答案 3 :(得分:0)

将滚动条绑定到div#right

$("#right").scroll(function () {
    console.log("scrolling")
    var vis = ($(document).scrollTop() > ($('.passedMe').offset().top + $('.passedMe').height()));
     $('.showHide').css('display', vis?'':'none')
});

DEMO