Как я уже упоминал в своем комментарии, вы не можете изменить свойство background-image
, но вы можете получить тот эффект, который вы ищете, если хотите добавить дополнительную разметку и затем изменить прозрачность.Таким образом, у вас будет некоторая разметка, подобная этой:
<nav>
<ul>
<li>
<img src="no-icon.png">
<img src="yes-icon.png">
<a id="foobar" href="http://www.google.com/search?q=foobar">Foobar</a>
</li>
</ul>
</nav>
Затем установите переход на изображениях, поместите их в абсолютное положение (чтобы они были похожи на фон) и скройте одно из них по умолчанию (ямы упустили расширения поставщика для ясности):
nav li img {
position: absolute;
transition-duration: 1.5s;
opacity: 1;
}
nav li img:first-child {
opacity: 0;
}
Затем поменяйте значения непрозрачности на li:hover
:
nav li:hover img {
opacity: 0;
}
nav li:hover img:first-child {
opacity: 1;
}
Вот полный рабочий пример .Не идеальное решение, потому что вам нужно добавить дополнительную разметку, но это сработает.