CSS具有@ media,@ keyframes等规则。可以使用javascript(例如@myCustomRule)来实现。如果是,那怎么办?如果没有,那么有没有其他选择或仅使用CSS?
虽然您无法创建自己的自定义@rules,但是可以使用CSSOM创建受支持的规则,并将其插入到使用JavaScript的浏览器样式表之一中:
button.addEventListener('click', function () {
const sheets = document.styleSheets;
const lastStyleSheet = sheets[sheets.length - 1];
const rule = `@keyframes rotate {
0% {
transform: rotate(0deg);
} 100% {
transform: rotate(360deg);
}
}`;
lastStyleSheet.insertRule(rule, lastStyleSheet.rules.length);
box.classList.add('rotate');
});
Run Code Online (Sandbox Code Playgroud)
#box {
border: 1px solid black;
height: 50px;
width: 50px;
}
#box.rotate {
animation: rotate 100ms infinite;
}
Run Code Online (Sandbox Code Playgroud)
<div id="box"></div>
<button id="button">Add Animation via JS</button>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
71 次 |
最近记录: |