Я думаю, что это невозможно сделать с чистым CSS . Причина в том, что когда вы нажимаете на ссылку, она загружает новую страницу. Для создания желаемого эффекта необходимо сохранить в памяти предыдущий цвет фона, чтобы вызвать переход.
Например, если конечные цвета фона следующие
- home page => blue
- о странице => красный
- страница портфолио => зеленый
Если вы переходите с домашней страницы на страницу about, переход должен быть с голубого на красный, но, допустим, вы переходите со страницы портфолио на страницу about, переход должен быть с зеленого на красный.
С чистым CSS невозможно узнать, был ли на предыдущей странице синий или зеленый цвет, чтобы перейти на красный на странице about.
Я бы посоветовал вам изучить некоторые рамки, такие как React, Vue или Angular. С теми,
* {
margin: 0;
padding: 0;
}
.navigation {
margin: 200px 20px;
background: #383838;
color: #FFF;
overflow: hidden;
height: 50px;
width: 1000px;
box-shadow: 0 2px 10px 2px rgba(0, 0, 0, 0.2);
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
}
.navigation li {
width: 100px;
border-bottom: 1px solid #666;
border-right: 2px ridge #585858;
float: left;
list-style-type: none;
font-family: 'ambleregular';
font-weight: normal;
font-size: 15px;
line-height: 28px;
padding: 10px 10px 10px 10px;
-webkit-transition: all .9s;
-moz-transition: all .9s;
-o-transition: all .9s;
-ms-transition: all .9s;
transition: all .9s;
}
.navigation .active {
background: #FE980F;
border-bottom: 1px solid #FFF;
animation: animatedNav 1s;
animation-timing-function: ease-in;
}
@keyframes animatedNav {
0% {background: #383838;}
100% {background: #FE980F;}
}
.navigation li a {
text-decoration: none;
color: #FFF;
}
.navigation .active a {
color: #333;
}
<!-- home.html -->
<body bgcolor="#faf7fd">
<ul class="navigation">
<li class="active"><a href="./index.html">Home</a></li>
<li><a href="./products.html">Products</a></li>
</ul>
</body>
<!-- products.html -->
<body bgcolor="#faf7fd">
<ul class="navigation">
<li><a href="./index.html">Home</a></li>
<li class="active"><a href="./products.html">Products</a></li>
</ul>
</body>
Вы можете создавать довольно впечатляющие переходы страниц.
На боковой ноте проверьте код, указанный ниже, и посмотрите, какой эффект вы хотите.
Проблема заключается в том, что ранее посещенная ссылка не будет иметь перехода