Как мне создать совместимый с Safari Transition Transform Scale без нарушения границы радиуса контейнера

У меня есть изображение, которое я хотел бы масштабировать при наведении курсора. Контейнер изображения имеет радиус границы. Изображение отлично масштабируется в большинстве браузеров, но в Safari border-radius контейнера удаляется при применении перехода. Я создал jsfiddle, демонстрирующий это поведение.

https://jsfiddle.net/jt9u7qhw/

Я попытался применить время перехода для конкретных свойств transform и border-radius с и без webkit,

.element {
    transition: transform 1s, border-radius 1s;
    -webkit-transition: transform 1s, border-radius 1s;
    transition-duration: 1s;
    -webkit-transition-duration: 1s;
}

Но это не имело значения, как мне сохранить радиус границы во время этого перехода?

1 ответ

Хотя это нарушает использование transform: scale а также -webkit-transition: transform 1s, border-radius 1s или -webkit-transition: all 1s Потенциальный обходной путь, поскольку здесь используются фоновые изображения, состоит в том, чтобы изменить размер фона при наведении курсора вместо его увеличения,

.element {
    background-size: auto 100%; # set width to auto works in this case b/c landscape pic
    -webkit-transition: all 1s ease-out;
    transition: all 1s ease-out;
}

.container:hover .element,
.container:focus .element {
    background-size: auto 110%;
}

Рабочая демонстрация, https://jsfiddle.net/khzu0t61/

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