我在使用Bootstra Affix插件时遇到了一些麻烦。我希望我的侧边菜单被粘贴,但始终位于标题下方和文档页脚的上方,因此我使用了data-offset-top
和data-offset-bottom
HTML5数据属性来保持菜单远离两者。
这一切正常,直到我将页面滚动到底部,此时菜单跳回到顶部并且不再粘贴。向下滚动页面后,菜单将保持在页脚上方(这是正确的)。但是当向上滚动时,它会跳到顶部并停留在那里。
这里是CodePen。怎么解决这个问题?
修改
经过一些调试后,我发现问题似乎与affix-bottom
到达并且正在应用position:relative
样式有关。当向上滚动时,样式将重置为此,位置不会改变。
Bootstrap脚本中是某种功能还是错误?
答案 0 :(得分:0)
我仍然不知道我在问题中描述的行为是否是一个预期的功能"或者一个bug。但是我能够通过以下方法解决问题。
正如我的问题编辑中所述,问题是position:relative
在affix-bottom
状态下应用但在将包切换到affix
状态时未被删除的原因。所以我只是添加了一个事件处理程序,以便在切换到affix
状态时完全删除所有内联样式。只需将以下代码添加到CodePen中使用的JS
:
$('.right_box').on('affixed.bs.affix', function() {
$this = $(this);
$this.removeAttr('style');
});
当然,只有在没有使用其他内联样式时才应用此解决方法。
也许这个解决方案可能会帮助别人遇到同样的问题。如果有一个真正的解决方案,我很乐意知道:)