Я знаю, что этот вопрос старый, но сегодня я столкнулся с этой проблемой. Я создаю своего рода слайд-шоу, в котором используются переходы CSS для анимации слайдов. Большинство браузеров обрабатывают transform: translateX(-100vw)
и transform: translateY(-100vh)
для перемещения слайдов влево и вверх соответственно, но IE имеет проблемы с расчетом правильных позиций начала/конца и путается по времени так же, как упоминалось в @ Alvaro.
Решение заключается в использовании абсолютных единиц (например, пикселей), а не относительных. Но, учитывая широкий диапазон размеров экрана, я должен поддерживать, я не могу использовать ни одно значение.
Моя работа заключалась в том, чтобы использовать ряд запросов @media
, чтобы определить набор правил перевода, которые всегда гарантируют, что слайд перемещается с экрана, но не заходит слишком далеко. Например:
/* Slide left */
@media (max-width: 480px) {
.slide.left {
transform: translateX(-480px);
}
}
@media (min-width: 481px) and (max-width: 960px) {
.slide.left {
transform: translateX(-960px);
}
}
@media (min-width: 961px) and (max-width: 1920px) {
.slide.left {
transform: translateX(-1920px);
}
}
@media (min-width: 1921px) and (max-width: 3840px) {
.slide.left {
transform: translateX(-3840px);
}
}
@media (min-width: 3841px) {
.slide.left {
transform: translateX(-7680px);
}
}
/* Slide up */
@media (max-height: 480px) {
.slide.up {
transforom: translateX(-480px);
}
}
/* Etc. */
Эти запросы будут поддерживать разрешение вплоть до 8К, хотя и со значительно меньшим зернистости при более высоких разрешениях. Вы хотите настроить их на основе ожидаемого использования.
Это, вероятно, связано с проблемой (я писал в твиттере некоторое время назад) (https://twitter.com/jonathansampson/status/491671062807973888). Я открыл вопрос об этом внутренне и добавлю этот вопрос к списку примеров, когда люди были укушены этой проблемой. – Sampson
Вы, кажется, много знаете об этом, знаете ли вы, что это только ie11? – Alvaro
Я работаю над командой IE. Тестирование, которое я создал (в вышеупомянутом твиттере), также воспроизводится в Internet Explorer 10. Мы не сразу обращались к нему только потому, что были гораздо более неотложные вопросы, которые мы хотели решить раньше. Но [сегодня мы отправили более 2000 исправлений для исправления] (http://blogs.msdn.com/b/ie/archive/2014/11/11/living-on-the-edge-our-next-step-in- interoperability.aspx), поэтому у нас есть много импульса. – Sampson