css - 我可以在 react.js 组件中定义和使用 CSS at-rule 吗?
问题描述
我有一个想要在 react.js 组件中使用的动画。
@keyframes pulse {
0% {
background-color: #94A3B8;
}
50% {
background-color: #CBD5E1;
}
100% {
background-color: #94A3B8;
}
}
我可以把它放在一个 CSS 文件中,然后将它导入到 react 组件中。然后我可以这样引用它:
<div style={{animation: "pulse"}}></div>
我很好奇是否可以在组件中定义动画。像这样的东西:
const animation = `
@keyframes pulse {
0% {
background-color: #94A3B8;
}
50% {
background-color: #CBD5E1;
}
100% {
background-color: #94A3B8;
}
}
`
<div style={{ keyframes: animation }}></div>
解决方案
最简单的方法是使用<style>
tagg 插入内联样式:
class ExampleClass extends React.Component {
render() {
return (
<div>
<h2>{'Test Inline Animation'}</h2>
<div className='animate'>{'WhoeeeHoeee'}</div>
<style>
{`
.animate {
animation-name: pulse;
animation-duration: 4s;
}
@keyframes pulse {
0% {
background-color: #94A3B8;
}
50% {
background-color: #CBD5E1;
}
100% {
background-color: #94A3B8;
}
}
`}
</style>
</div>
);
}
}
ReactDOM.render(<ExampleClass />, document.body);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
推荐阅读
- html - Z-index 和 mix-blend-mode 在 Firefox 中悬停时不能一起工作
- json - 将“设置变量”活动的输出传输到 json 文件 [Azure 数据工厂]
- rpmbuild - fpm v.1.11.0 与包含 /usr/lib/.build-id 文件
- c# - 事务中的多个 Dapper Execute() 语句抛出 NpgsqlTransaction 已完成;它不再可用的异常
- python - 如果它前面有数字,则替换正则表达式字符
- react-bootstrap-typeahead - TypeError:e.persist 不是 Typeahead Bootstrap React 中的函数
- c# - C# Entity Framework - 在数据库中为现有用户创建新声明
- c++ - 格式化 Doxygen 中的参数
- c++ - C++ shared_ptr 无效
- javascript - 为什么方法 push() 下划线?