IE10 - загрузка страницы задерживается из-за анимации CSS

Я создал анимацию, чтобы затемнить DIV, а затем уменьшить его размер до нуля (поскольку я не могу использовать display: none; в анимациях). Анимация отлично работает в Google Chrome и FireFox, но в Internet Explorer 10 страница перестает загружаться до завершения анимации. Поэтому обычно предполагается, что DIV появляется вместе со всем остальным во время загрузки страницы, затем после 3-секундной задержки он должен исчезнуть и сузиться, чтобы остальная часть страницы скользила вверх, заполняя пустое пространство. Тем не менее, в IE10 появляется DIV, но остальная часть содержимого ниже DIV не... просто пустое пространство. Через несколько секунд содержимое загружается так же, как DIV начинает исчезать.

Сначала я подумал, что 'animation-delay: 3s' тоже задерживает загрузку страницы, поэтому я попытался изменить свою анимацию, чтобы не использовать задержку, и вместо этого просто имел больше ключевых кадров, где не было изменений в DIV для первого 0-66%, затем 66-88, оно исчезнет, ​​а 88-100 уменьшится. Это не решило проблему, и эта новая анимация снова работала нормально в chrome/firefox, но та же проблема для IE10.

Ниже мой код. Я понимаю, что одним из решений было бы скрыть div, а затем при загрузке страницы я мог бы изменить CSS с помощью JavaScript, чтобы показать DIV, и добавить класс с анимацией... Однако я хотел бы решить эту проблему только с помощью CSS, так как эта анимация используется во всем веб-приложении, которое я разрабатываю, так что это добавило бы работу любому, кто использует анимацию, если бы мы использовали javascript.

Использование Asp.Net MVC 4 с видами бритвы, .net 4.5 и Bootstrap CSS

NOTE: I used Visual Studio w/ Web Essentials to copy vendor specifics, so all the vendor specific CSS has identical values for everything.

.successFadeOut {
    display: block !important;
    animation: successFadeOutAnimation;
    animation-duration: 1.5s;
    animation-delay: 3s;
    animation-fill-mode: forwards;
}

@keyframes successFadeOutAnimation {
    0% {
        opacity: 1;
        height: auto;
        padding-top: 8px;
        padding-bottom: 8px;
        margin-top: 0px;
        margin-bottom: 20px;
        line-height: 20px;
    }

    70% {
        opacity: 0;
        height: auto;
        padding-top: 8px;
        padding-bottom: 8px;
        margin-top: 0px;
        margin-bottom: 20px;
        line-height: 20px;
    }

    100% {
        opacity: 0;
        height: 0px;
        padding-top: 0px;
        padding-bottom: 0px;
        margin-top: 0px;
        margin-bottom: 0px;
        line-height: 0px;
    }
}

1 ответ

Добавьте код ниже для IE в вашем классе.successFadeOut

    -ms-animation-duration:1s;
    animation-timing-function: linear;
Другие вопросы по тегам