首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浮动图像弄乱了Bootstrap Scrollspy

浮动图像弄乱了Bootstrap Scrollspy
EN

Stack Overflow用户
提问于 2013-04-03 03:23:48
回答 2查看 1.2K关注 0票数 5

我已经使用bootstrap设置了一个页面。(http://ethnoma.org/about.html)我有一个附加的侧边栏导航(它工作得很好)。我也在这个导航上使用bootstrap scrollspy,导航中的所有链接都在同一个页面内(使用ancors)。一切都运行得很好(甚至添加了一个平滑滚动插件)。我只需调用此脚本来强制Scrollspy在所有内容添加到页面(我将其放在<head>中)后进行刷新。

代码语言:javascript
复制
<script type="text/javascript">
// ScrollSpy
$(function () {
    $('[data-spy="scroll"]').each(function () {
        var $spy = $(this).scrollspy('refresh')
    });
});
</script>

然后,我的客户要求我在页面上添加图片。我使用如下所示的bootstrap标记和css类来实现:

代码语言:javascript
复制
<a class="pull-right pad5" href="#">
    <img class="media-object img-polaroid" src="assets/img/about-001.jpg" alt="Partnership"/>
</a>

这使得父"a“标记向右浮动(在本例中),并使img成为块元素。

问题是这些浮动的图像会使页面比原来更长。然而,Scrollspy仍然在同一位置切换活动链接。这会导致scrollspy激活页面下方比当前位置更远的内容链接。

我不知道如何迫使Scrollspy在计算主播链接ID的位置时将浮动图像考虑在内。你们谁知道我怎么才能解决这个问题。您可以在下面的页面http://ethnoma.org/about.html中查看该问题的效果

EN

回答 2

Stack Overflow用户

发布于 2014-12-04 12:00:07

我自己也遇到了这个问题,所以我想我应该提供一些解释,以及一个可能的解决方案,以防其他人发现自己陷入了这个困境。

首先,scrollspy工作正常。在计算页面上各种元素的偏移量时,图像尚未加载,因此它们的有效高度为0。稍后,当图像加载时,浏览器会确定它们的本机尺寸,重新计算页面布局,然后用图像重新绘制页面。但是,scrollspy完全不知道页面已被重新绘制,因此它继续使用过时的偏移量。

如果要在加载所有图像后刷新scrollspy,您会发现偏移量是正确的。因此,问题是如何做到这一点。

一种解决方案是在每个图像上附加一个onLoad事件处理程序,然后在处理程序中刷新scrollspy。一种简化的方法可能如下所示:

代码语言:javascript
复制
<script type="text/javascript">
    function refreshScrollspy() {
        $('[data-spy="scroll"]').each(function() {
            $(this).scrollspy('refresh');
        });
    }
    $(function() {
        refreshScrollspy();
    });
</script>

<img onload="refreshScrollspy()" src="assets/img/about-001.jpg" alt="Partnership"/>

这是一个working jsfiddle example。请注意,在实际加载图像之前,必须注册该图像的加载处理程序。否则,它就不会被解雇。这就是我在这里使用内联事件处理程序的原因。一个更优雅的解决方案留给了读者。

票数 2
EN

Stack Overflow用户

发布于 2013-09-03 16:46:57

我在尝试使用Bootstrap中的Scrollspy时遇到了这个问题,似乎脚本在计算时没有考虑到图像的高度,因此导致Scrollspy是准确的。

我相信这是因为图像没有设置高度。通过检查页面,我发现我在页面中包含的浮动图像的高度设置为auto,并且当我在CSS中进行媒体查询后将其设置为特定值时,我的Scrollspy工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15772588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档