【问题标题】:Keep main content beneath fixed header将主要内容保留在固定标题下
【发布时间】:2015-10-28 10:32:48
【问题描述】:

对 jQuery 很陌生,如果这是基本的,请见谅。

我希望我的主要内容包装器始终位于固定标题下方。如果固定标头始终具有相同的高度,这将是可以的,但它是响应式的并且它的高度会发生变化。

这是我迄今为止的 jQuery(不起作用):

var banner = $('div.banner');
var wrapper = $('div.wrapper');

wrapper.offset().top = banner.outerHeight() + wrapper.offset().top;

我认为通过在任何给定时刻将wrapper.offset().top 定义为与横幅高度相同的值,这将起作用。可惜没有。

任何帮助将不胜感激。

【问题讨论】:

    标签: jquery header offset fixed


    【解决方案1】:

    您可以将其包装在 doc ready 块中并使用css() 方法设置top 属性:

    function setHeader(){
        var banner = $('div.banner');
        var wrapper = $('div.wrapper');
    
        wrapper.css('top', banner.outerHeight() + wrapper.offset().top);
    }
    $(function(){
        var time;
            time = setTimeout(function(){
               if(time){ clearTimeout(time);}
               $(window).resize(setHeader).trigger('resize');
            }, 700);
    
    });
    

    【讨论】:

    • 感谢您的快速回复。这在刷新浏览器时设置得很好,但是在调整窗口大小时,主要内容迅速下沉并消失......
    • 那么你需要像setTimeout()clearTimeout()这样的延迟。
    • 好的,我已经修复了它,所以主要内容出现在固定的标题下方。问题 #1 解决了。我现在的问题是在调整窗口时做到这一点,当固定标题高度发生变化时,jQuery 会不断检查这一点,并相应地“修复”包装偏移位置。
    • 再次感谢您的回复。不幸的是仍然无法正常工作。超时正在响应,但同样,当我调整窗口大小时,主体从屏幕上飞下来——尽管这次没有那么快。
    • Still not working 无济于事,您介意在jsfiddle.net进行演示吗
    猜你喜欢
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多