0

我创建了一个小插件来检查元素是否在 position : fixed 并获取它的高度(如果是)。我想要的是通过我文档中的所有元素运行此函数以查找所有固定元素并获取它们的高度,但我不知道如何写下来

$.fn.isFixed = function () {
    if ($(this).css('position') === 'fixed'){
        var height = ($(this).height());
        return height;
    }
    else {
        return false;
    };
}

这是我的代码。

4

3 回答 3

0

此搜索仅在声明的样式表中。

var selectorsArray = [];
for (i in document.styleSheets) {
    for (k in document.styleSheets[i].cssRules) {
        if (document.styleSheets[i].cssRules[k].style.position === "fixed") {
            selectorsArray.push(document.styleSheets[i].cssRules[k].selectorText);
        }
    }
}

因此,您可以选择其他元素:

$('[style~=fixed]').each(function(i,e){});
于 2013-11-04T11:36:21.750 回答
0
var allElements = $("*").contents();

然后在 allElements 变量上使用 .each() 函数。

希望这可以帮助

于 2013-11-04T11:07:46.507 回答
0

在这种情况下,您可能必须返回一个数组,因为可能有多个元素。另外为了确保值索引得到维护undefined,如果位置不固定,我将插入到数组中

$.fn.isFixed = function () {
    var array = [];

    this.each(function(){
        if ($(this).css('position') === 'fixed') {
            array.push($(this).height());
        }else{
            array.push(undefined);
        }
    })

    return array;
}
于 2013-11-04T11:01:43.877 回答