查找元素的最大滚动

时间:2015-05-14 12:38:14

标签: javascript jquery scroll

我正在实现我自己的带控件的水平滚动(左/右) 我怎样才能找到右边有多少滚动?

我的代码如下:

$scope.scrollFilters = function(dir) {
    var leftPos = $('.filters').scrollLeft();
    var containerWidth = $('.filters').width();
    var scrollTo = 0;
    if (dir == 'right') {
        scrollTo = leftPos + scrolled >= containerWidth ? containerWidth : leftPos + scrolled;
    } else {
        scrollTo = leftPos - scrolled <= 0 ? 0 : leftPos - scrolled;
    }

    $('.filters').animate({
        scrollLeft: scrollTo
    });
};

我感兴趣的是获得实际的$('.filters').width()。目前它只返回我在CSS中设置的宽度,如果我不限制div的宽度,我想得到实际的宽度。

P.S。它是一个AngularJS应用程序,但这次不认为它对我有任何帮助。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

你应该尝试抓住它的最大宽度

var theWidth = Math.max.apply(null, $(".filters").map(function() {
  return $(this).outerWidth(true);
}).get());

答案 1 :(得分:0)

如果有滚动,则表示内部元素大于外部元素,因此您应该计算内部宽度(更大)和外部宽度(更小)或它们的高度之间的差异。

这可能对您有所帮助,因为您必须应用相同的概念:How to get maximum document scrolltop value