#css #safari
Вопрос:
Я пытаюсь создать эффект плавной прокрутки для img, стилизованного под object-fit: cover;
. После различных неудовлетворительных попыток это работает очень хорошо, используя свойство CSS transition
в object-position
свойстве, когда я обновляю последнее в Javascript.
За исключением, оказывается, Safari и Safari Mobile (в частности, версии 14.1.2 и 14.7.1 соответственно, но можно с уверенностью сказать, что они близки к «последним» по состоянию на 2021-09-26).
Я создал здесь минимальный рабочий пример (который, как оказалось, обновляет свойства в CSS, но эффект кажется тем же самым).:
https://jsfiddle.net/v9fgxpb8/1/
наиболее важными частями которых являются:
HTML
<div style="height: 150px; width: 150px;">
<img id="example_1" src="https://upload.wikimedia.org/wikipedia/commons/f/f9/Phoenicopterus_ruber_in_São_Paulo_Zoo.jpg"/>
</div>
CSS
#example_1 {
min-width: 300px;
width: 100%;
height: 100%;
object-fit: cover;
object-position: 50% 50%;
-webkit-transition: object-position 1s;
-moz-transition: object-position 1s;
-o-transition: object-position 1s;
transition: object-position 1s;
}
#example_1:hover {
object-position: 50% 0%;
}
В Opera и Chrome это приводит к плавному эффекту скольжения при наведении курсора на изображение, поскольку оно переходит из положения посередине в положение вверху.
В Safari происходит изменение положения, но без анимационного эффекта. Действительно, как показывает JSFiddle, событие «переход» никогда не запускается в Safari.
Нигде я не могу найти никаких предположений о том, что это не должно работать в Safari. Действительно, другие свойства CSS, которые в равной степени перечислены как поддерживаемые, ведут себя так, как и ожидалось. Это просто не работает, или я что-то упускаю из виду?
Ответ №1:
Я бы сказал, что это просто неизвестная ошибка Safari, и вам следует ее зарегистрировать.
Комментарии:
1. Покрасьте меня недоверчиво, но ладно, отчет об ошибке представлен здесь: apple.com/feedback/safari.html