问题计算表滚动条位置

时间:2017-03-25 18:01:44

标签: javascript jquery css html-table

所以我有一个脚本可以在桌面边缘添加一个轻微的阴影,你可以滚动,这取决于滚动条的位置,但它有时不起作用。

这是其中的一部分:

  $('table').on('scrollstart scrollstop', function(){
    if($(this).parent().hasClass('table-wrap')){
      var elem = $(this),
        elemBody = elem.find('tbody'),
        elemParent = elem.parent('.table-wrap');
      var scrolled = (elemBody.outerWidth() - elemParent.outerWidth() - elem.scrollLeft());
      if(scrolled === 0){
        elemParent.addClass('left_active');
        elemParent.removeClass('right_active');
      } else if(elem.scrollLeft() === 0) {
        elemParent.removeClass('left_active');
        elemParent.addClass('right_active');
      } else {
        elemParent.addClass('left_active');
        elemParent.addClass('right_active');
      }
    }
  });

这部分有时我必须将“+1”加到“elem.scrollLeft() - 其中---”;使其有效。

  

var scrolled =(elemBody.outerWidth() - elemParent.outerWidth() -   elem.scrollLeft());

但后来我注意到,有些桌子有帮助,有些桌子则停止工作。当我向右滚动时,“right_active”类的含义不会消失。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试在Array ( [25] => Array ( [pts_total] = 1425 /* 600 + 450 + 375 */ [all_pts_strings] = 00600 00450 00375 /* biggest points, 2nd biggest, etc. */ [all_c_strings] = 00025 00011 00033 /* competition of biggest points, 2nd biggest, etc. */ [no_of_competitions] = 3 /* [1], [2], and [3] = 3 in total */ /* biggest points first... */ [2] => Array ( [pts_string] => 00600 [c_string] => 00025 ) /* 2nd biggest points... */ [1] => Array ( [pts_string] => 00450 [c_string] => 00011 ) /* 3rd biggest points... */ [3] => Array ( [pts_string] => 00375 [c_string] => 00033 ) ) ) 的计算中包含滚动条宽度?

var scrolled

我认为你在正确的轨道上,但宽度可能不准确,因为var scrolled = (elemBody.outerWidth() - elemParent.outerWidth() - elem.scrollLeft()); 不包括滚动条宽度。因此,最大滚动宽度始终大于实际元素宽度。