0

我正在尝试使用 twitter-bootstrap 在 Rails 应用程序中设置 Nivo Slider,我面临的问题是图像出现在另一个不滑动的顶部,知道如何解决这个问题吗?

这是我的代码:

加载 nivo 滑块:

<div class="slider-wrapper theme-default">
    <div id="slider" class="nivoSlider">
        <% @page.images.each_with_index do |img, index| %>      
            <%= image_tag img.url, :title => '#htmlcaption' %> 
      </div>
</div>
    <div id="htmlcaption" class="nivo-html-caption">
    <%=raw @page.caption_for_image_index(index) %>
  </div>  
    <% end %>

_javascript.html.erb

<%= javascript_include_tag 'application' %>
<%= javascript_include_tag 'jquery.nivo.slider.pack' %>
<%= javascript_include_tag 'jquery.nivo.slider' %>

<script type="text/javascript">
$(window).load(function() {
    $('#slider').nivoSlider({
        effect: 'fade',
        pauseTime: 5000,
        directionNav:true,
        controlNav:true

    });
});
</script>

应用程序.js

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require bootstrap
4

2 回答 2

0

我相信问题来自each循环。如果您注意到循环内部有两个结束div标记 - 就在这一行下面<%= image_tag img.url, :title => '#htmlcaption' %>。因此,您打开divs一次,然后关闭多次。

您可以做的是稍微更改代码,例如:

<div class="slider-wrapper theme-default">
  <div id="slider" class="nivoSlider">
    <% @page.images.each do |img| %>      
        <%= image_tag img.url, :title => img.caption_for_image %> 
    <% end %>
  </div>
</div>

看看Nivo Docs。还有其他替代标题选项的示例。

于 2013-02-08T18:34:42.087 回答
0

我找到了一个非常容易解决这个问题的方法:

我使用的是旧版 CMS,它在滑块中的一些图像旁边插入图像映射标签(导致空白幻灯片)。简单地忽略不相关的元素似乎效果很好。

在您的jquery.nivo.slider.js文件中替换第 36 行 //找到我们的滑块子项

替换这个

36 - var kids = slider.children();

36 - var kids = slider.children("img,a");

保存更改,重新加载浏览器并解决问题。

有关更多详细信息,请访问github gilbitron / Nivo-Slider

于 2013-02-08T20:17:29.853 回答