Объяснение того, что вы видите:
Если ваш браузер в данный момент указывает на этот адрес:
mysite.com/mypage/
, и вы нажимаете <a href="#fermions">
, ваш браузер теперь будет указывать на:
mysite.com/mypage/#fermions
Это вызовет анимацию псевдокласса :target
.
Если вы теперь снова нажмете <a href="#fermions">
... вы никуда не денетесь - потому что выуже там.
Таким образом, анимация не будет запускаться.
Достижение этого эффекта (только CSS):
Я ценю, что вы, вероятно, хотите использовать только CSSспособ создания этого эффекта, но ... вы можете только (вроде) реагировать на пользовательские клики через CSS с использованием :focus
и :target
.В обоих случаях вы увидите, что как только вы войдете в данное состояние (и анимация будет запущена один раз), вы останетесь в этом состоянии (и анимация не запустится снова), пока вы не будете активно менять состояние.
Тем не менее, вы можете создать желаемый эффект, отвечая пользователю наведением мыши через CSS, используя псевдокласс :hover
.
Рабочий пример:
[href="#fermions"]:hover ~ #fermions,
[href="#bosons"]:hover ~ #bosons {
animation: highlight 1.2s ease-out 0.15s;
}
@keyframes highlight {
0% {background: LightSkyBlue;}
100% {background: none;}
}
<div>
There are <a href="#fermions">Fermions</a> and <a href="#bosons">Bosons</a>.
<p class="highlightable" id="bosons">
Bosons are very social particles!</p>
<p class="highlightable" id="fermions">Fermions only goes out as a couple!</p>
</div>