如何在Javascript中获取css3多列计数

如何在Javascript中获取css3多列计数,javascript,css,multiple-columns,Javascript,Css,Multiple Columns,我们正在使用新的css3多栏布局属性将文本转换为报纸专栏。每列都有一个固定的宽度,列数默认为“自动”,这意味着浏览器决定有多少列 如何在Javascript中以整数形式获得实际列数 如果我们查询css“column count”(或-moz column count),我们会得到“auto”或一个空白。您是否可以为每一列设置一个类,例如class=“另一列”,然后使用Jquery选择类并迭代它们 var count = 0; $('.another-column').each(function(

我们正在使用新的css3多栏布局属性将文本转换为报纸专栏。每列都有一个固定的宽度,列数默认为“自动”,这意味着浏览器决定有多少列

如何在Javascript中以整数形式获得实际列数


如果我们查询css“column count”(或-moz column count),我们会得到“auto”或一个空白。

您是否可以为每一列设置一个类,例如class=“另一列”,然后使用Jquery选择类并迭代它们

var count = 0;
$('.another-column').each(function(){
    count++;
});

警告,这是未经测试的。如果您能提供一些html/css3代码,我可以在JSFIDLE上测试它,秘诀是在内容的末尾放一个小标记。您可以通过编程方式添加空范围:

<span id="mymarker"></span>

然后使用jquery$(“#mymarker”)获取跨度并获取“left”属性。将该数字除以列的宽度(根据列间距进行调整),这将告诉您最后一个元素所在的列。Math.ceil()的值,您就有了列计数。

尝试以下方法:

$.fn.howMuchCols=function(){
返回Math.round($(this).find(':last').position().left-$(this.position().left/$(this.outerWidth())+1;
};

$('.my stuff with columns').howMuchCols()我不确定如何在每列上设置一个类。这些列是动态创建的,我不知道如何将它们作为单个对象来处理。你能给我一些css3代码让我看看吗?+1非常有用,但是你应该使用
Math.floor(value)+1
来正确解释除法中没有舍入错误的情况。另外,如果您是以编程方式插入一个元素,那么使用jQuery按ID选择它是违反常识的行为。非常好的主意。。。我认为在某些情况下,这个标记可以跳转到另一列。是不是最好得到最后一个孩子,而不是添加新的标记?你能添加一个解释的代码,你刚刚发布?好的,我已经添加到文章正文