【问题标题】:Lost Fixed Position on page load jQuery页面加载jQuery时丢失固定位置
【发布时间】:2015-06-08 18:13:43
【问题描述】:

现在我有一个类似于这个 jsFiddle 的脚本:Fixed on Scroll

现在,如果我向下滚动它就可以了。但是如果我刷新页面,固定元素会消失,直到我进行滚动。

我考虑过如果$(window) > 0 然后用 if 语句显示它。没事了。只是想在正确的方向上得到帮助。

谢谢。

【问题讨论】:

  • 你能创建一个 JSFiddle 吗?没有细节很难调试。
  • @Cymen 我的代码与示例显示的相同。我不认为你可以 jsFiddle 需要刷新的东西。它就这样消失了。

标签: javascript jquery fixed


【解决方案1】:

鉴于您的页面与 JSFiddle 相同,我建议挂钩页面的就绪事件并运行在滚动时运行的相同功能。所以它看起来像:

$(document).ready(function(){
        if($(window).scrollTop() > elementPosition.top){
              $('#navigation').css('position','fixed').css('top','0');
        } else {
            $('#navigation').css('position','static');
        }    
});

【讨论】:

  • 是的,我已准备好文档点设置。抱歉忘了提。
  • @nick.hiebert 我建议发布一个人们可以与之交互的示例。我同意 JSFiddle 由于刷新而很糟糕。所以把它放在别的地方。
【解决方案2】:

我会将控制结构放入一个函数中并在 onscroll 和 onready 中运行

var elementPosition = $('#navigation').offset();

$(window).scroll(shouldStickHeader);
$(document).ready(shouldStickHeader);

function shouldStickHeader () {
    if($(window).scrollTop() > elementPosition.top){
          $('#navigation').css('position','fixed').css('top','0');
    } else {
        $('#navigation').css('position','static');
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多