jQuery隐藏/显示偏移问题

时间:2015-09-24 21:43:57

标签: javascript jquery html css responsive-design

我的网站上有一个导航栏太宽,无法在移动设备上显示所有按钮。因此,我希望隐藏导航按钮与视口的偏移小于150px(下拉将取消它的位置)。如果偏移量超过150px,则需要显示导航栏。

我制作了一个显示我想要的Fiddle(调整窗口大小)。它正确隐藏了视图中的导航栏,但如果偏移量大于150,则不会再次显示。

我知道这是因为元素的宽度为“auto”,因此无法检查条件,但我不知道解决方法。

如何解决此问题?感谢。

HTML

<div>
    <div class="container">
        <div class="item">Some</div>
        <div class="item">Example</div>
        <div class="item">Text</div>
    </div>
</div>

CSS

div {
    background: red;
    text-align: center;
}

.container {
    display: inline-block;
    background: green;
}

.item {
    display: inline-block;
    background: green;
}

JS

$(window).on('resize', function(){
    var offset = $('.container').offset();
    if (offset.left < 150) {
        $('.container').hide();
    } else {
        $('.container').show();
    }
}).resize();

1 个答案:

答案 0 :(得分:3)

发生这种情况的原因是,一旦你隐藏了某些内容,它就不再呈现,因此它不知道容器的.offset()。

也许尝试css&#34;可见性&#34;代替?

请参阅:http://jsfiddle.net/hnwacrzq/5/

$(window).on('resize', function(){
    var offset = $('.container').offset();
    console.log(offset);
    if (offset.left < 150) {
        $('.container').css("visibility", "hidden");
    } else {
        $('.container').css("visibility", "visible");
    }
}).resize();