附加的侧边栏位置不会改变

时间:2016-11-16 11:17:15

标签: twitter-bootstrap

我在使用Bootstra Affix插件时遇到了一些麻烦。我希望我的侧边菜单被粘贴,但始终位于标题下方和文档页脚的上方,因此我使用了data-offset-topdata-offset-bottom HTML5数据属性来保持菜单远离两者。

这一切正常,直到我将页面滚动到底部,此时菜单跳回到顶部并且不再粘贴。向下滚动页面后,菜单将保持在页脚上方(这是正确的)。但是当向上滚动时,它会跳到顶部并停留在那里。

这里是CodePen。怎么解决这个问题?

修改

经过一些调试后,我发现问题似乎与affix-bottom到达并且正在应用position:relative样式有关。当向上滚动时,样式将重置为此,位置不会改变。

Bootstrap脚本中是某种功能还是错误?

1 个答案:

答案 0 :(得分:0)

我仍然不知道我在问题中描述的行为是否是一个预期的功能"或者一个bug。但是我能够通过以下方法解决问题。

正如我的问题编辑中所述,问题是position:relativeaffix-bottom状态下应用但在将包切换到affix状态时未被删除的原因。所以我只是添加了一个事件处理程序,以便在切换到affix状态时完全删除所有内联样式。只需将以下代码添加到CodePen中使用的JS

$('.right_box').on('affixed.bs.affix', function() {
    $this = $(this);
    $this.removeAttr('style');
});

当然,只有在没有使用其他内联样式时才应用此解决方法。

也许这个解决方案可能会帮助别人遇到同样的问题。如果有一个真正的解决方案,我很乐意知道:)

相关问题