2014-01-29 2 views
0

У меня есть div с фиксированной высотой и шириной и при нажатии на метку (трюк checkbox) я расширяю div до 100% ширины и высоты. Это работает, однако проблема заключается в переходе.Ускоренный переход, похоже, не работает на задержку

Я хочу создать переход, где сначала ширина расширяется, а затем высота расширяется. Однако при определении переходов ослабление не происходит, вместо этого это похоже на функцию временной синхронизации, которая идет на step-end. Переход происходит мгновенно без ослабления (хотя работает задержка на преобразовании высоты).

ТЛ; др: переход теряет гладкость

Пример: jsFiddle

+0

200мса не очень много времени, в котором для облегчения ничего. –

+0

@Paulie_D увеличение времени ничего не меняет. Переход все еще не течет, а мгновенно меняет состояния. – MrPlow

ответ

1

Свойства не могут быть перенесены из разных «показателей».

В базовом состоянии вы указываете высоту в px; в измененном состоянии вы указываете его в процентах. Это не сработает.

Вы можете настроить его как-то с некоторыми трюками, которые не являются полностью удовлетворительными; лучшим из них является использование макс-высоту, чтобы сделать Изменение

#cbox { 
    display:none; 
} 

.someDiv { 
    background: blue; 
    color: white; 
    width: 200px; 
    max-height: 100px; 
    overflow: hidden; 
    height: 100%; 

    transition-property: width, max-height; 
    transition-duration: 2000ms; 
    transition-timing-function: ease; 
    transition-delay: 0, 2000ms; 
} 

#cbox:checked + div { 
    width: 100%; 
    max-height: 1000px; 
} 

Я также прописан переход на путь, который может сэкономить некоторое набрав при использовании нескольких свойств; обратите внимание, что я могу написать только облегчить раз

fiddle

+0

Это сработало, спасибо за помощь. Я подумаю об использовании js, но пока это будет отлично. – MrPlow

1

Вы должны отделить свойства с запятой, вместо того, чтобы писать их в той же строке, попробуйте этот

CSS

-webkit-transition: width 200ms ease 0s, height 200ms ease 200ms; 
    -moz-transition: width 200ms ease 0s, height 200ms ease 200ms; 
    -ms-transition: width 200ms ease 0s, height 200ms ease 200ms; 
    -o-transition: width 200ms ease 0s, height 200ms ease 200ms; 
    transition: width 200ms ease 0s, height 200ms ease 200ms; 
+0

Спасибо за это. Он течет по ширине, но высота все же вскакивает. Это вопрос с процентами? – MrPlow

+0

Я запускаю его на локальном хосте, и он отлично работает, однако в jsfiddle он действует странно ... Кстати, вы считали нас javascript или jQuery, чтобы сделать этот переход? – amaro

+0

Я открыт для js, для jquery не так много. Я действительно не хочу обременять сайт 80 КБ, если я его не использую. Хотя я не уверен, как я могу заставить его работать в js. – MrPlow

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