Javascript 对滚动div中的可见元素进行计数

Javascript 对滚动div中的可见元素进行计数,javascript,jquery,scroll,Javascript,Jquery,Scroll,我想计算在一个可滚动的div中有多少项是可见的(包括最后一个可见的,即使显示了10px),以便在AJAX回调转换中为其设置动画。 根据屏幕大小,这可能会有所不同,我正在寻找检测 目标是做类似的事情(但我不知道lt(n)) 示例: -计算卷轴父对象的宽度(因为在本例中这是“视口”)。然后计算从小于上述计算宽度的位置开始的框数。这仅在上述场景中有效 var parentContainerWidth = $(".scroll").parent().width(); var containedBoxes

我想计算在一个可滚动的div中有多少项是可见的(包括最后一个可见的,即使显示了10px),以便在AJAX回调转换中为其设置动画。
根据屏幕大小,这可能会有所不同,我正在寻找检测

目标是做类似的事情(但我不知道lt(n))

示例:

-

计算卷轴父对象的宽度(因为在本例中这是“视口”)。然后计算从小于上述计算宽度的位置开始的框数。这仅在上述场景中有效

var parentContainerWidth = $(".scroll").parent().width();
var containedBoxesCount = $('.box').filter(function () {
    return $(this).offset().left <= parentContainerWidth;
}).length;
alert(containedBoxesCount);
var parentContainerWidth=$(“.scroll”).parent().width();
var containedboxescont=$('.box').filter(函数(){
返回$(this).offset()。左此代码可以

    $(function () {

        var total_width = $(".box").length * $(".box").outerWidth(true);
        $(".scroll").width(total_width);

        var scroll = $('.scroll');
        var viewport_w = scroll.parent().width();
        var box1 = $('.box:first');
        var boxw = box1.outerWidth(true);
        var view_items = Math.ceil(viewport_w/ boxw);
        console.log(boxw, viewport_w, view_items);

     });  
此代码适用于所有框(外部)宽度相等。它使用
的直接父元素进行计算。滚动
正好是
body
元素,并检查可以容纳多少个元素。它将除法结果的小数部分转换为和整数,以适应您的要求。即使显示10px。即,即使0.1也转换为a 1

更新

保证金崩溃不会发生:D

Yay!谢谢:)只需将其简化为一行魔术变量(适用于我的最终代码):
var visible\u items=Math.ceil($(“#照片”).width()/$(“.thumbnail:first”).outerWidth(true))
最终使用的
Math.ceil(总宽度/$(“.thumbnail:first”).outerWidth(true))+1
为了确保在我为角度项目编写这篇文章时多了一个项目,这种方法更容易转换为纯JavaScript。
    $(function () {

        var total_width = $(".box").length * $(".box").outerWidth(true);
        $(".scroll").width(total_width);

        var scroll = $('.scroll');
        var viewport_w = scroll.parent().width();
        var box1 = $('.box:first');
        var boxw = box1.outerWidth(true);
        var view_items = Math.ceil(viewport_w/ boxw);
        console.log(boxw, viewport_w, view_items);

     });