2016-07-18 4 views
0

У меня есть индикатор выполнения, который я хочу перемещать в соответствии с текущей шириной. Я могу заставить его перейти к статической ширине, но я понятия не имею, как передать новую ширину, чтобы установить ее.Передача переменной для CSS3 Анимация

CSS-это

@media all and (min-width: 800px) { 
    .checkout-bar li.active:after { 
     @include green-stripe; 
     @include inner-shadow; 
     content:""; 
     height: 15px; 
     left: 50%; 
     width: 0%; 
     float: left; 
     position: absolute; 
     top: -50px; 
     z-index: 0; 
     -webkit-animation: myanimation 3s 0 forwards; 
    } 
    @-webkit-keyframes myanimation { 
     from { 
     width: 0; 
     } 
     to { 
     width: 50%; //I would like this to be a variable 
     } 
    } 

Это HTML:

<div className="checkout-wrap"> 
    <ul className="checkout-bar"> 
     <li className="visited">Received Message</li> 
     <li className="visited">Splitting Message</li> 
     <li className="visited">Publish on Call</li> 
     <li className="visited">Ready to Send</li> 
     <li className="active" style={{'width': iOSPercent + '%'}}>Sending Message</li> // this should pass in the width 
     <li className="next">Done</li> 
    </ul> 

</div>; 

Спасибо заранее,

+0

Ни у CSS, ни у HTML нет переменных. У вас есть доступ к языкам JavaScript или CSS, например SASS или LESS? –

+0

Да. Я пишу интерфейс в React, а таблица стилей - это файл Sass с синтаксисом .scss. – LivingRobot

ответ

0

Используйте дополнительный дочерний узел (как div) для анимации загрузки и установить цель ключевого кадра - 100%. Детский узел должен взять все пространство вашего li, чтобы он отвечал на ширину, которую вы устанавливали программно. И, конечно же, измените CSS, чтобы таргетировать div, а не li.

+0

. Как мне переписать анимацию с и на? Куда я иду и куда я собираюсь? – LivingRobot

+0

Ваш селектор css может быть чем-то вроде: '' '.checkout-bar li.active div: after''', и вы всегда идете на 100%. Div охватывает все место, доступное в '' .checkout-bar li.active''', поэтому адаптируется к вашему сценарию, устанавливая ширину в iOSPercent ... – Kjell

+0

Проблема в том, что мне в конечном итоге необходимо передать переменные в @ -webkit -keyframes myanimation {от {width: 0} до {width: 50%}} селектор. Это потому, что мне нужно диктовать, как обновлять анимацию. Переход к другому селектору точно не выполнит это. – LivingRobot

Смежные вопросы