CSS fade слева направо



Есть ли способ выцветания элементов (по крайней мере, только текста) слева направо или наоборот, используя только CSS?



Вот пример того, что я имею в виду:



Введите описание изображения здесь



На самом деле, если это требует jQuery, я тоже приму это, просто как второй приоритет.

641   2  

2 ответов:

Да, вы можете сделать это с помощью CSS3 анимации (Проверьте поддержку браузера здесь).

Вот простой пример: демо для стирания текста.

HTML:

<div class="text">
There is some text here!
<div class="fadingEffect"></div>
</div>​

CSS:

.text {
    position:relative;
    line-height:2em;
    overflow:hidden;
}
.fadingEffect {
    position:absolute;
    top:0; bottom:0; right:0;
    width:100%;
    background:white;
    -moz-animation: showHide 5s ease-in alternate infinite; /* Firefox */
    -webkit-animation: showHide 5s ease-in alternate infinite; /* Safari and Chrome */
    -ms-animation: showHide 5s ease-in alternate infinite; /* IE10 */
    -o-animation: showHide 5s ease-in alternate infinite; /* Opera */
    animation: showHide 5s ease-in alternate infinite;
}
@-webkit-keyframes showHide { /* Chrome, Safari */
    0% {width:100%}
    40% {width:0%}
    60% {width:0%;}
    100% {width:100%;}
}
@-moz-keyframes showHide { /* FF */
    0% {width:100%}
    40% {width:0%}
    60% {width:0%;}
    100% {width:100%;}
}
@-ms-keyframes showHide { /* IE10 */
    0% {width:100%}
    40% {width:0%}
    60% {width:0%;}
    100% {width:100%;}
}
@-o-keyframes showHide { /* Opera */
    0% {width:100%}
    40% {width:0%}
    60% {width:0%;}
    100% {width:100%;}
}
@keyframes showHide {
    0% {width:100%}
    40% {width:0%}
    60% {width:0%;}
    100% {width:100%;}
}
Как вы можете видеть, существует резкий контраст на границах. Если вы используете градиент изображения вместо чистого белого фона, он будет отображаться лучше.

Затем вы можете использовать запасной вариант jQuery для IE9 и ниже.

В photoshop или другом программном обеспечении для редактирования изображений создайте круглую область, которая прозрачна в середине и со всех сторон исчезает до сплошного белого цвета. Не стесняйтесь обрезать верхнюю/нижнюю часть по мере необходимости. Затем вы можете использовать CSS-переходы для анимации графики слева направо, чтобы добиться эффекта в вашей демо-версии. Для браузеров, таких как IE, которые не поддерживают переходы, используйте функцию cssHooks в jquery для выполнения анимации с помощью jQuery.

Вы могли бы создать этот эффект с помощью css градиенты, но вы сталкиваетесь с проблемами поддержки браузера, а использование переходов на градиентах css очень плохо с точки зрения производительности. Однако простая анимация png24 очень проста и дает тот же эффект.

Comments

    Ничего не найдено.