代码之家  ›  专栏  ›  技术社区  ›  P. Nick

如何用scrollspy确定拇指高度?

  •  0
  • P. Nick  · 技术社区  · 6 年前

    我试着做一个像scrollspy一样的滚动条,但有一个问题;它实际上并没有滚动到轨迹的底部,因为拇指的高度不正确(或者我认为这就是它不起作用的原因)。

    你可以在这里看到一个例子: http://jsfiddle.net/92zsvhak/5/

    $(window).on("scroll", function() {
      var scrollPercentage = 100 * $(window).scrollTop() / ($(".container").height() - $(window).height());
    
      $(".scrollspy > .track > .bar").css("top", scrollPercentage);
    });
    

    正如在jsfiddle中看到的那样,一旦您向下滚动到最后一个轨迹的开头,绿色条应该位于红色轨迹的底部 .block

    如何才能做到这一点?

    1 回复  |  直到 6 年前
        1
  •  0
  •   remix23    6 年前

    拇指的高度是正确的,但是你忘了做变量 scrollPercentage 实际百分比(=>以“%”结尾的字符串)。

    这并不能解决所有问题,因为您仍然需要删除条的高度,这样条的底部就不会在其容器外滚动。

    为了更简单,将条高设置为20%,并从最大计算的滚动量中删除20%(我们可以以像素为单位执行此操作,但随后需要条容器高度,我将让您进行数学运算):

    var scrollPercentage = (80 * $(window).scrollTop() / ($(".container").height() - $(window).height())) + '%';
    

    注意,我们在上面减去了20到100,并加上了“%”符号;

    Working fiddle here