Get CSSKeyframesRule length
Get CSSKeyframesRule length
我正在遍历 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 的来源,但它是 C 语言,所以我无法使用他们用来查找长度/大小的方法,即 ::length
等等。
我知道它有一个长度,因为我可以调用像keyframes[3].keyText
这样的东西并获取一个值,所以它就像一个数组。
我已经尝试了keyframes.size()
,keyframes.forEach
,keyframes.length
,以及更多的尝试,但它们不起作用,因为它不是一个数组,它是一个CSSKeyframesRule对象。我还尝试使用¿parent?(我不知道该怎么称呼它 - 我的意思是ss
,ss[i]
和ss[i].cssRules
)包括我认为可行的ss[i].cssRules.length
,但它没有。
这是一个小提琴来显示我的问题
你们有什么想法吗?
您的代码工作正常。只需尝试提醒
keyframes.cssRules.length
将得到 5
alert(keyframes.cssRules.length);
小提琴:http://jsfiddle.net/creativevilla/T83Nc/
相关文章:
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- Array.length似乎不起作用;console.log则显示其他情况
- 为什么Float32Array.length的值总是3
- jQuery.length()速度含义
- JQuery `length`属性工作不正常.为什么?
- 可以't将.length属性与IronJS和ArrayObject一起使用
- javascript testing .length and .length > 0
- getElementsByTagName('img').length logs out to 0
- 为什么 .length 在此代码中总是返回 0
- jquery .length 不返回实际长度
- 有时 array.length 只在 .push() 之后工作(为什么?)
- 当Json Length过长时,对ASP.NET MVC Controller的Ajax调用返回404
- 是什么导致JS中出现这种带有.length的奇怪行为
- 在for循环中使用x.length时出现问题
- Javascript document.images.length returning 0
- 流星+聚合物-核心子菜单投掷'undefined不是对象(正在评估'this.items.length&
- 文本框's的length属性在JQuery中从不返回0
- Function.length和this.length不一样.为什么
- .length不处理$resource导致angularjs
- 使用 delete 运算符删除空函数中的 .length