CSSKeyframesRule.findRule() - セレクタからCSSルールを取得する
findRule()は、CSSKeyframesRuleのメソッドです。セレクタを指定して、@keyframes内のCSSルールを取得します。
概要
- 名前
- findRule
- 所属
- CSSKeyframesRule
- IDL
CSSKeyframeRule? findRule(CSSOMString select); typedef USVString CSSOMString;
- 仕様書
- https://drafts.csswg.org/css-animations/#dom-csskeyframesrule-findrule
説明
引数(select)には、対象のCSSルールのセレクタ(例: from
)を文字列で指定する。セレクタは、"from"は"0%"、"to"は"100%"に変換される。
CSSルールが見つからない場合は、nullを返す。
デモ
CSSKeyframesRule.findRule()のデモです。@keyframesのCSSルールを対象に、"from"を引数にしてメソッドを実行しています。
<!-- このコードは編集できます。 -->
<!DOCTYPE html>
<head>
<style>
@keyframes syncer {
from {
color: red ;
}
to {
color: blue ;
}
}
</style>
<style>
p#hoge { font-size: 24px ; font-weight: 700 ; animation: 5s infinite alternate syncer ; }
body { tab-size: 2 ; word-break: break-all ; }
div#result { white-space: pre-wrap ; }
</style>
</head>
<body>
<p id="hoge">SYNCER</p>
<hr>
<div id="result"></div>
<script>
var styleSheetList = document.styleSheets ;
var styleSheet = styleSheetList[0] ;
var keyframesCSSRule = styleSheet.cssRules[0] ;
appendText( keyframesCSSRule + "\n" ) ;
console.log( keyframesCSSRule ) ;
appendText( "\t" + "name: " + keyframesCSSRule.name + "\n" ) ;
var keyframeCSSRule = keyframesCSSRule.findRule( "from" ) ;
appendText( "\t\t" + 'find( "from" ): ' + keyframeCSSRule + "\n" ) ;
appendText( "\t\t\t" + "keyText: " + keyframeCSSRule.keyText + "\n" ) ;
appendText( "\t\t\t" + "style: " + keyframeCSSRule.style + "\n" ) ;
appendText( "\t\t\t" + "style.cssText: " + keyframeCSSRule.style.cssText + "\n" ) ;
function appendText ( text ) {
document.getElementById( "result" ).appendChild( document.createTextNode( text ) ) ;
}
</script>
</body>
</html>
サポート状況
Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|
● 31+ | ● 16+ | ● 9.1+ | ● | ● | ● 21+ | ● 9.1+ | × |
関連記事
- CSSPageRule.style
- styleは、CSSPageRuleのプロパティです。@pageの宣言ブロック内のスタイルシートのまとまりをCSSStyleDeclarationで返します。
- CSSKeyframesRule.deleteRule()
- deleteRule()は、CSSKeyframesRuleのメソッドです。@keyframes内のCSSルールを1つ削除します。
- CSSKeyframesRule.appendRule()
- appendRule()は、CSSKeyframesRuleのメソッドです。@keyframes内にCSSルールを1つ追加します。
- CSSKeyframesRule.cssRules
- cssRulesは、CSSKeyframesRuleのプロパティです。子に含む全てのCSSルールをCSSRuleListで返します。