当我向下滚动页面时,Scrollspy 导致我的 li 在第一个和第二个 li 之间闪烁,但是一旦我到达最后一部分,正确的 li 就会变为活动状态。我很确定这与 AJAX 有关系,但不知道为什么。当我刷新页面时,scrollspy 工作得很好。任何想法为什么会发生这种情况?我已经尝试了一切都没有成功。
身体标签
<body data-spy="scroll" data-target=".stickysteps">
如何调用scrollspy
<% if manual.present? && manual.steps.present? %>
<div class="stickysteps">
<ul class="nav nav-pills">
<% n = 0 %>
<% @manual.steps.order(:priority).each do |step| %>
<li><a href="#step<%= n+1 %>"><h4>Step <%= n + 1 %></h4></a></li>
<% n += 1 %>
<% end %>
</ul>
</div>
<h1 style="margin-left: 20px;">Your Instructions:</h1> </br>
<% steps = manual.steps.order(:priority) %>
<%= render(steps.order(:priority), steps: steps) %>
<% end %>
<script type="text/javascript">
$('.stickysteps').scrollspy();
$('[data-spy="scroll"]').each(function () {
$('.stickysteps').scrollspy('refresh');
});
offsetValue = 168;
$('body').data().scrollspy.options.offset = offsetValue;
// force scrollspy to recalculate the offsets to your targets
$('body').data().scrollspy.process();
</script>
<%= javascript_include_tag "manuals" %>
<%= javascript_include_tag "imagezoom" %>