Попытка сделать контейнер с текстом постепенно расширяется при добавлении к нему нового текста, я использовал свойство css transition
. Точно, я фиксирую текущую ширину, добавляю текст, а затем отпускаю ширину. JS код выглядит следующим образом:Переход CSS зависит от порядка назначения стиля
footer.style['max-width'] = footer.offsetWidth + 'px'
footer.innerHTML += ' additional text'
footer.style['max-width'] = '500px'
с этим CSS для footer
:
overflow: hidden;
text-overflow: clip;
white-space: nowrap;
Это did't работу. Пытаясь найти обходной путь, я добавил еще одну строку кода:
footer.style['height'] = footer.offsetHeight + 'px'
Теперь, когда эта линия будучи поставлен перед присвоением max-width
(так в начале фрагмента кода), она не работает. Но поместив его после этой строки (делая ее второй строкой) - делает. Вопрос в том, почему? и каков правильный способ работы с переходами? (?, Но в основном, почему)
Fiddle испытан в светлячок 40,0 и 39,0 хром: http://jsfiddle.net/53dbm6vz/
вы можете объяснить "* не работает *"? (Используя IE11, все, кажется, * работает *) – Amit
Вы правы, в IE это работает. В других браузерах видно, что одна линия получает полную ширину моментально. –
Попробуйте инициализировать max-width до некоторого разумного значения (например, offsetWidth, например ..), а модификация текста и ширины происходит в более позднем цикле, либо в качестве обработчика события (например, нажатие кнопки), либо с помощью setTimeout , Возможно, FF/Chrome «игнорируют» промежуточное значение max-width, потому что оно находится внутри одного цикла JS. – Amit