position:fixed overflowing parent

时间:2013-01-17 15:45:32

标签: jquery html css overflow css-position

非常感谢任何帮助。

以下是简化的代码段。我遇到的问题是“徽标”类的位置与我希望的完全相同,即相对于整个页面/窗口。因此,当我向下滚动页面时,“logo”元素在父元素内向下移动页面。

问题在于,尽管“logo”元素是“page”元素的子元素,但“logo”始终可见,即使在父母的界限之外,尽管将父母“溢出”设置为“隐藏”

如果有人知道如何纠正CSS的问题,这将是非常好的和首选。 jQuery(JavaScript)也是一个选项,虽然我更愿意避开这个,如果我可以,因为我非常清楚这个网站一旦完成就会非常重。

<style>
.page{
    width:100%;
    height:1000px;
    overflow:hidden;
}
.logo{
    position:fixed;
    margin:20px;
}
</style>

<div class="page">
    <div class="logo"></div>
<div>
<div class="page">
    <div class="logo"></div>
<div>

2 个答案:

答案 0 :(得分:2)

无法完成。取自here

因为固定位置元素相对于视口是固定的,而不是另一个元素。因此,由于视口没有将其切断,溢出变得无关紧要。

根据要求,完全理论上可能的jQuery解决方案:

$(window).scroll(function(){
    if($(this).scrollTop()>=1000){
        $('#ItemToHide').hide();
    } else {
        $('#ItemToHide').show();
    }
});

这是非常草率的,显然可以改进,但这样的事情可能有用。

答案 1 :(得分:1)

你可能想要绝对定位。绝对定位元素基于其父元素。所以标识绝对位置顶部:20px将它放置在页面元素顶部20像素。固定在20px的顶部,距离窗口顶部20px。但是,要使绝对定位起作用,您的页面元素将需要至少相对的位置。

http://www.w3schools.com/css/css_positioning.asp