Я пытаюсь создать эффект постепенного появления и исчезновения с помощью перехода CSS. Но я не могу заставить это работать с фоновым изображением ...
CSS:
.title a {
display: block;
width: 340px;
height: 338px;
color: black;
background: transparent;
/* TRANSITION */
-webkit-transition: background 1s;
-moz-transition: background 1s;
-o-transition: background 1s;
transition: background 1s;
}
.title a:hover {
background: transparent;
background: url(https://lh3.googleusercontent.com/-p1nr1fkWKUo/T0zUp5CLO3I/AAAAAAAAAWg/jDiQ0cUBuKA/s800/red-pattern.png) repeat;
/* TRANSITION */
-webkit-transition: background 1s;
-moz-transition: background 1s;
-o-transition: background 1s;
transition: background 1s;
}
Взгляните: http://jsfiddle.net/AK3La/
css
background
background-image
css-transitions
Ник Зани
источник
источник
background-image
не является анимируемым свойством ( w3.org/TR/css3-transitions/#animatable-properties ), поэтому ваше решение не соответствует стандарту.background
, и это то, что следует использовать (у меня оно работает в Chrome). Возможно, спецификация (или имп) изменилась с тех пор, как был опубликован вопросРешение (которое я нашел сам) - уловка ниндзя, я могу предложить вам два способа:
сначала вам нужно сделать "контейнер" для
<img>
, он будет одновременно содержать нормальное состояние и состояние зависания :с селекторами CSS3 http://jsfiddle.net/eD2zL/1/ (если вы используете этот, «нормальное» состояние будет первым дочерним элементом вашего контейнера или измените
nth-child()
порядок)Решение CSS2 http://jsfiddle.net/eD2zL/2/ (различия между ними - всего несколько селекторов)
В принципе, вам нужно скрыть «нормальное» состояние и показать их «наведение» при наведении на него
и все, надеюсь, кому-нибудь это пригодится.
источник
Я нашел решение, которое сработало для меня ...
Если у вас есть элемент списка (или div), содержащий только ссылку, и скажем, это для социальных ссылок на вашей странице на facebook, twitter и т. Д. и вы используете изображение спрайта, вы можете сделать это:
Сделайте фон "li" изображением вашей кнопки
Затем сделайте фоновое изображение ссылки состоянием наведения кнопки. Также добавьте к этому атрибут непрозрачности и установите для него значение 0.
Теперь все, что вам нужно, это «непрозрачность» в «a: hover» и установить для нее значение 1.
Добавьте атрибуты перехода непрозрачности для каждого браузера в «a» и «a: hover», чтобы окончательный CSS-код выглядел примерно так:
Если я объяснил это правильно, у вас должна появиться исчезающая кнопка фонового изображения, надеюсь, это поможет хотя бы!
источник
К сожалению, вы не можете использовать переход
background-image
, см. Список анимированных свойств w3c .Вы можете проделать некоторые трюки с
background-position
.источник
Вы можете использовать псевдоэлемент, чтобы получить желаемый эффект, как я сделал в этой скрипке .
CSS:
HTML:
источник
:after
элемент, попробуйте установитьwidth
и ,height
как100%
вместо того , чтобыinherit
, 2) , еслиbackground-image
фактически отображаются на переднем плане , использование отрицательного индекса для:after
элемента:z-index: -1;
Если вы можете использовать jQuery, вы можете попробовать плагин BgSwitcher для переключения фонового изображения с эффектами, он очень прост в использовании.
Например :
И добавьте свой эффект, см. Добавление типов эффектов
источник
Попробуйте это, заставит анимированный фон работать в Интернете, но гибридное мобильное приложение не работает
источник
Учитывая, что фоновые изображения нельзя анимировать, я создал небольшой миксин SCSS, позволяющий переключаться между двумя разными фоновыми изображениями с использованием псевдоселекторов до и после . Они находятся на разных уровнях z-индекса. Тот, что впереди, начинается с непрозрачностью 0 и становится видимым при наведении курсора.
Вы можете использовать тот же подход для создания анимации с линейными градиентами.
СКС
Теперь вы можете просто использовать его с
Вы можете проверить это здесь: https://jsfiddle.net/pablosgpacheco/01rmg0qL/
источник
Если анимация
opacity
невозможна, вы также можете анимироватьbackground-size
.Например, я использовал этот CSS для установки
backgound-image
с задержкой.источник
.after
в.before
для фонового изображения, вы должны установить фоновое изображение в.before
. В противном случае он просто исчезнет без анимации.Салам, этот ответ работает только в Chrome, потому что IE и FF поддерживают переход цвета.
Нет необходимости создавать элементы HTML
opacity:0
, потому что иногда они содержат текст, и нет необходимости дублировать ваши элементы !.Вопрос со ссылкой на пример в jsfiddle потребовал небольшого изменения, то есть поместить пустое изображение
.title a
такbackground:url(link to an empty image);
же, как вы его вставили,.title a:hover
но сделать его пустым изображением, и код будет работать.Проверьте это https://jsfiddle.net/Tobasi/vv8q9hum/
источник
С вдохновляющим постом Криса здесь:
https://css-tricks.com/different-transitions-for-hover-on-hover-off/
Мне удалось вот что придумать:
источник
Этого можно достичь с большей кросс-браузерной поддержкой, чем принятый ответ, используя псевдоэлементы, как показано в этом ответе: https://stackoverflow.com/a/19818268/2602816
источник
Я немного боролся с этим, сначала я использовал стопку изображений друг над другом, и каждые три секунды я пытался анимировать следующее изображение в стеке и бросать текущее изображение в конец стека. В то же время я использовал анимацию, как показано выше. Я не мог заставить его работать всю жизнь.
Вы можете использовать эту библиотеку, которая позволяет ** динамически изменять размер фонового изображения с поддержкой слайд-шоу ** с помощью jquery-backstretch.
https://github.com/jquery-backstretch/jquery-backstretch
источник