<分区>
Possible Duplicate:
How to get css3 multi-column count in Javascript
我有一个很长的动态文本,它将使用 CSS 分成几列
div
{
-moz-column-width: 500px;
-moz-column-gap: 20px;
}
是否可以获取创建了多少列?我在客户端使用 jQuery。
标签 javascript jquery css
<分区>
Possible Duplicate:
How to get css3 multi-column count in Javascript
我有一个很长的动态文本,它将使用 CSS 分成几列
div
{
-moz-column-width: 500px;
-moz-column-gap: 20px;
}
是否可以获取创建了多少列?我在客户端使用 jQuery。
最佳答案
您的问题和 fiddle 会忽略 vendor 前缀; larssin 的回答是一个很好的方向,但并不完整。
我为您创建了一个小的辅助函数,它遍历当前为这些值实现的前缀,使用 .css()
获取实际值并返回正确的数字。跨浏览器工作,包括始终返回 1 的不支持的浏览器。
我选择忽略 iframe 的情况,这只会让事情变得更复杂,但据我所知,这与您的问题没有直接关系。
更新:现在考虑了边框和填充。
Code on jsFiddle在这里:
function getColumnsNumber(el){
var $el = $(el),
width = $el.innerWidth(),
paddingLeft, paddingRight, columnWidth, columnGap, columnsNumber;
paddingLeft = parseInt( $el.css('padding-left'), 10 );
paddingRight = parseInt( $el.css('padding-right'), 10 );
$.each(['-webkit-','-moz-',''], function(i, prefix){
var _width = parseInt( $el.css(prefix+'column-width'), 10 );
var _gap = parseInt( $el.css(prefix+'column-gap'), 10 );
if (!isNaN(_width)) columnWidth = _width;
if (!isNaN(_gap)) columnGap = _gap;
});
columnsNumber = Math.floor( (width - paddingLeft - paddingRight) / (columnWidth + columnGap) );
if (isNaN(columnsNumber) || columnsNumber < 1) columnsNumber = 1;
return columnsNumber;
}
关于javascript - 获取由 css column-width 创建的列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276359/
相关文章:
html - flex 容器的高度在 Safari 中无法正常工作
html - 如何将 div/占位符放入 bootstrap 网格
javascript - 谷歌地理图表中不同的、有范围的颜色
javascript - IFrame Loaded 事件中的所有内容
jquery - jQuery Datepicker + Grails + dd/mm/yyyy格式
javascript - Node.js 中的 `exit` 事件的行为与手册中的不同
javascript - 如何使用 javascript 或 jquery 将变量值传递给 href 属性?
jquery - 类型错误 : $ is not a function when using Firebug console directly