Итак, я пытаюсь сделать что-то, что, я уверен, я должен был делать бесчисленное количество раз, но по какой-то причине просто не работает на этот раз.Переход CSS не применяется при добавлении класса с JS
У меня есть следующий кусок HTML:
<span class="toggle-nav"><span>Toggle navigation</span></span>
и следующий CSS:
.toggle-nav {
position absolute
top:1rem;
left:1rem;
z-index 10
width: 4rem;
height: 3.5rem;
cursor:pointer;
background: $primary;
span
span:before
span:after {
content: '';
position: absolute;
left:0;
top:0;
display: block;
text-indent: -9999px;
background-color: #fff;
height:.5rem;
width: 100%;
transition: background-color .5s ease-in-out, transform .5s ease-in-out
}
span {
top: .5rem;
width: 3rem;
margin-left .5rem
}
.open & {
span {
background-color: transparent;
&:after {
transform: rotate(-45deg);
top: 1rem;
}
&:before {
transform: rotate(45deg);
}
}
}
}
У меня есть немного JS, который будет переключать класс «открытым» к родителю переключите-Nav. Все нужные стили применяются, и они выглядят точно так, как я хочу. Однако по какой-то причине переходная часть полностью игнорируется. Это был долгий день, и я уверен, что просто пропустил что-то глупое, но я не вижу его. У кого-нибудь есть идеи?
Edit: Вот codepen, так что вы можете видеть более ясно, что происходит:
http://codepen.io/alexward1981/pen/PZVBZV
Разочаровывающе, в codepen работает, но мой сайт не так, я думаю, что-то еще мешает ему.
Не могли бы вы сделать jsfiddle для нас? –
Btw, 'margin-left .5rem' here're': 'и'; 'skipped. –
Это написано в Stylus, так что пропавшие запятые и точки с запятой прекрасны :) Я делаю кодфель, когда мы говорим. –