Матричный масштабный переход не работает

Я должен использовать матрицу преобразования для анимации преобразования: масштаб элемента.

Я хочу масштабировать от 0 до 1. Если я использую следующий код, он работает правильно:

.container {
    width: 200px;
    height: 100px;
    background: yellow;
    transform: scale(0);
    transition: transform 1s;
}
.container.open {
    transform: scale(1);
}

https://jsfiddle.net/w4kuth78/1/

Если я использую саму матрицу, она не работает.

.container {
    width: 200px;
    height: 100px;
    background: yellow;
    transform: matrix(0, 0, 0, 0, 0, 0);
    transition: transform 1s;
}
.container.open {
    transform: matrix(1, 0, 0, 1, 0, 0);
}

https://jsfiddle.net/m7qpetkh/1/

Я делаю что-то не так или это просто не работает? Мне интересно, потому что это не работает в Chrome и Firefox...

Отладочный вывод console_log сообщает, что при масштабировании от 0 до 1 матрица также устанавливается из матрицы (0,0,0,0,0,0) в матрицу (1,0,0,1,0,0).

РЕДАКТИРОВАТЬ:

Полная путаница... Если я изменю значения scaleX и scaleY в матрице на 0,1 или 0,01, это сработает... вау

1 ответ

При анимации или переходе преобразований списки функций преобразования должны быть интерполированы. Две функции преобразования с одинаковым именем и одинаковым числом аргументов интерполируются численно без предыдущего преобразования. Вычисленное значение будет иметь тот же тип функции преобразования с тем же количеством аргументов.

Специальные правила применяются к rotate3d(), matrix(), matrix3d ​​() и перспективы (). Функции преобразования matrix (), matrix3d ​​() и перспективы () сначала преобразуются в матрицы 4x4 и интерполируются. Если одна из матриц для интерполяции является единственной или необратимой (если ее детерминант равен 0), преобразованный элемент не визуализируется, и используемая функция анимации должна вернуться к дискретной анимации в соответствии с правилами соответствующей спецификации анимации.

Тогда в случае матрицы (0,0,0,0,0,0) очевидно, что матрицы результата 4X4 для масштаба являются единичными

Кредиты для http://www.w3.org/TR/css3-2d-transforms/

Другие вопросы по тегам