【问题标题】:Get CSSKeyframesRule length获取 CSSKeyframesRule 长度
【发布时间】:2013-09-05 23:29:55
【问题描述】:

我正在遍历 CSS 关键帧,以便根据最接近动画元素当前行为的关键帧将原始动画更改为新动画。我使用下面的函数通过遍历样式表来获取关键帧规则。

function findKeyframesRule(rule) {
    var ss = document.styleSheets;
    for (var i = 0; i < ss.length; ++i) {
        for (var j = 0; j < ss[i].cssRules.length; ++j) {
            if (ss[i].cssRules[j].type == window.CSSRule.WEBKIT_KEYFRAMES_RULE 
               && ss[i].cssRules[j].name == rule) { 
                return  ss[i].cssRules[j]; 
            }
        }
    }
    return null;
}

这样称呼:var keyframes = findKeyframesRule(anim);

我的问题:我需要获取 ss[i].cssRules[j](或变量 keyframes,因为它们指向同一个 WebkitCSSKeyframesRule 对象)的长度/大小,但一直无法找到解决方法这样做。我发现我认为是 CSSKeyframesRules here 的来源,但它是 C 语言,所以我无法使用他们用来查找长度/大小的方法,即 ::length 等。

我知道它有一个长度,因为我可以调用像 keyframes[3].keyText 这样的东西并获得一个值,所以它作用就像一个数组。

我已经尝试过keyframes.size()keyframes.forEachkeyframes.length 和其他一些尝试,但它们不起作用,因为它不是数组,而是 CSSKeyframesRule 对象。我还尝试使用 ¿parent? (我不知道怎么称呼它 - 我的意思是 ssss[i]ss[i].cssRules)包括 ss[i].cssRules.length,我认为它会起作用,但它不起作用。

Here is a fiddle to show my problem

你们有什么想法吗?

【问题讨论】:

    标签: javascript css css-animations variable-length


    【解决方案1】:

    您的代码运行良好。试着提醒一下

    keyframes.cssRules.length

    将获得 5

    alert(keyframes.cssRules.length);
    

    小提琴:http://jsfiddle.net/creativevilla/T83Nc/

    【讨论】:

    • Facepalm 感谢您收看。我已经看了好几个小时了,没想到!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多