Демонстрационная ссылка: https://codepen.io/jodriscoll/pen/wRpQOw
Я работаю над анимационным поведением, похожим на слепую сторону, когда пользователь наводит курсор на объект (якорь), он расширяет объект (якорь) по ширине и создает ощущение, что больше объектов содержит внутри (подумайте об обтравочной маске).
Первоначально объект видео / изображения стилизован таким образом, чтобы предотвратить его перемещение 1: 1 с помощью «обтравочной маски» (привязка, обертывающая видео / изображение). Это означает, что он уже смещен в положение, в котором он должен находиться, когда пользователь наводит курсор на якорь.
И изображение, и видео изначально стилизованы для заполнения всего якоря И промежутков между желобами; это помогает при анимации создать ощущение, что мы просто показываем больше фотографии, не изменяя ее размеры и не заставляя перемещаться по экрану (извините, это может сбить с толку ...):
left: -24px; // the width of each gutter gap
width: calc(100% + 48px); // fill the parent + fill the gutter gaps
Когда пользователь наводит курсор на привязку, дочерние элементы изменяют свои спецификации CSS на:
left: 0; // stay flush with the anchor object
width: 100%; // fill the parent, which now includes the gutter gap(s)
Кажется, что все работает правильно при просмотре анимации на Chrome / Safari / Firefox :
К сожалению, есть небольшой сбой в IE11 / Edge :
Вопросы и многообещающее полезное понимание для достижения ответа:
После просмотра проблемы с анимацией возникают ли в IE11 / Edge проблемы с анимацией мер CSS с использованием calc()
?
Нужно ли создавать CSS-анимацию с ключевыми кадрами, чтобы исправить этот сбой в IE11 / Edge?
Я неправильно подхожу к этому и должен анимировать разные свойства?