Я пишу прокручивающийся тикер с переменным количеством компонентов, поэтому мне нужно его изменить, как далеко translate3d
перемещает его в зависимости от количества компонентов. Единственный способ, которым я могу это сделать, - это как-то передать ему номер из файла JSX
, но я не могу найти способ сделать это. Есть ли способ передать CSS
переменную или какой-либо другой способ сделать то, что я хочу?Есть ли способ передать переменную из ReactJS в таблицу стилей CSS?
1
A
ответ
3
Существует несколько библиотек « CSS in JS », которые позволяют добавлять keyframes
в анимацию компонентов. Когда вы пишете стили в своем JavaScript, вы можете напрямую использовать компоненты/компоненты ваших компонентов или некоторые другие константы для создания стилей ваших компонентов.
3 Следующие библиотеки имеют ключевые кадры поддержки (я лично использую первый):
Styled-компоненты (GitHub)
import styled, { keyframes } from 'styled-components';
const rotate360 = keyframes`
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
`;
const Rotate = styled.div`
display: inline-block;
animation: ${rotate360} 2s linear infinite;
`;
Гламурная (GitHub)
import { css } from 'glamor'
let bounce = css.keyframes('bounce', {
'0%': { transform: 'scale(0.1)', opacity: 0 },
'60%': { transform: 'scale(1.2)', opacity: 1 },
'100%': { transform: 'scale(1)' }
})
<div {...css({
animation: `${bounce} 2s`,
width: 50, height: 50,
backgroundColor: 'red'
})}>
bounce!
</div>
Aphrodite (GitHub)
Больше чтения о «CSS в JS» шаблон
- React: CSS in JS (presentation by Christopher Chedeau, Facebook) (8 ноября 2014)
- Writing your styles in JS ≠ writing inline styles (25 ноября 2016)
Надежда, что помогает! :)
0
Хотя не совсем то, на что я надеялся, я нашел способ заставить это работать. Оказывается, причина, по которой translate3d(100%, 0, 0)
не работала, была из-за flexbox. Как только это было удалено из элемента, я смог контролировать скорость анимации, установив ширину элемента и время анимации, динамически создавая эти стили в React.
Смежные вопросы
- 1. Есть ли способ передать переменную в памяти?
- 2. Есть ли способ передать переменную в schematron?
- 3. Есть ли способ указать таблицу стилей пользователя в JavaFX Webview?
- 4. Есть ли способ передать переменную из jquery в javascript?
- 5. Reactjs: передать переменную findDOMNode
- 6. Пользователь выбрал таблицу стилей CSS в Rails
- 7. Есть ли другой способ визуализации в ReactJs
- 8. Есть ли способ передать переменную в setup() в dispy?
- 9. Есть ли способ обнаружить IE11 и изменить всю таблицу стилей?
- 10. Есть ли способ передать переменную в шаблон в angularjs?
- 11. Есть ли способ передать переменную через вызов RenderComponentPresentation?
- 12. Как перезагрузить CSS-таблицу стилей
- 13. Есть ли способ передать переменную в конструкторе при загрузке модели?
- 14. Есть ли способ передать переменную класса в другом классе?
- 15. Есть ли способ передать переменную в нажатую функцию?
- 16. Есть ли способ передать переменную в файл aspx через url?
- 17. Есть ли способ изменить таблицу стилей страницы на основе таблицы стилей другой страницы?
- 18. Есть ли способ опустить переменную из суперкласса?
- 19. Есть ли способ добавить переменную в метод jquery css?
- 20. ссылка на таблицу стилей CSS
- 21. Есть ли способ использовать ту же таблицу стилей CSS для печатного носителя и макет по умолчанию?
- 22. Есть ли способ создать таблицу Mysql, где я могу передать переменную PHP в качестве имени таблицы?
- 23. Ссылка на таблицу стилей CSS
- 24. Есть ли способ передать суперглобальную переменную через html-форму?
- 25. Есть ли способ передать лямбда-выражение как переменную или аргумент?
- 26. iPhone, игнорирующий CSS-таблицу стилей
- 27. Включает ли встроенный CSS таблицу стилей в нижней части страницы?
- 28. Есть ли способ «испечь» переменную?
- 29. Есть ли способ передать «это» другой функции?
- 30. Есть ли способ подключить ReactJS к динамическим элементам из магистрали?
Вы можете использовать javascript, чтобы вручную добавить встроенный стиль translate3d с необходимыми переменными, которые вы хотите. Это может помочь: https://facebook.github.io/react/docs/dom-elements.html#style –
CSS не имеет * * переменных. Вы должны работать со свойствами элементов в дереве документов. –
@Press Я пытался это сделать, но ключевой кадр не работает во встроенном стиле. – SaintWacko