Перехід фонового кольору


286

Я намагаюся зробити ефект переходу, background-colorколи ви наводите курсор меню, але це не працює. Ось мій CSS-код:

#content #nav a:hover {
    color: black;
    background-color: #AD310B;
    /* Firefox */
    -moz-transition: all 1s ease-in;
    /* WebKit */
    -webkit-transition: all 1s ease-in;
    /* Opera */
    -o-transition: all 1s ease-in;
    /* Standard */
    transition: all 1s ease-in;
}

Це список #nav divменю ul.


Просто FYI, зараз це працює у Firefox. Перевірено в FF9.
C.Brown

Відповіді:


527

Наскільки мені відомо, зараз переходи працюють у Safari, Chrome, Firefox, Opera та Internet Explorer 10+.

Це повинно створити ефект зникнення для вас у цих браузерах:

a {
    background-color: #FF0;
}

a:hover {
    background-color: #AD310B;
    -webkit-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}
<a>Navigation Link</a>

Примітка: Як вказував Джеральд у коментарях, якщо ви помістите перехід на a, замість a:hoverнього він зникне до початкового кольору, коли миша відійде від посилання.

Це може стати в нагоді також: Основи CSS: Переходи CSS 3


38
Ви також можете вводити переходи до content #nav aвідмов назад до оригіналу, коли користувач відсуває мишу від посилання.
гак

2
Скрипки з наведенням і кліком переходами на: jsfiddle.net/K5Qyx
Dem Pilafian

3
Хіба не було б краще вкласти його transition:в не-наближення? Я думаю, що кожен раз, коли користувач наводить курсор, перехід збирається ..
Matej

1
@Illium Link помер
ferdynator

2
CSS, transitionздавалося б, не може обробити колір такого типу "лінійний градієнт", як це можна перевірити тут . І btw, відповідь @ Ilium заслуговує на те, щоб бути позначеною як рішення.
Стакі

84

Мені краще поставити перехідні коди з оригінальними / мінімальними селекторами, ніж із: курсором наведення або будь-яким іншим додатковим селектором:

#content #nav a {
    background-color: #FF0;
    
    -webkit-transition: background-color 1000ms linear;
    -moz-transition: background-color 1000ms linear;
    -o-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}

#content #nav a:hover {
    background-color: #AD310B;
}
<div id="content">
    <div id="nav">
        <a href="#link1">Link 1</a>
    </div>
</div>


8
Справа не в тому, що це краще чи гірше. Просто, якщо вказати перехід на самому лементі, він буде анімований, коли елемент зависає і коли він стає "відхиленим". Якщо ви застосуєте його до: наведіть курсор, у вас з'явиться анімація, коли миша введеться, але не тоді, коли вона піде.
LucasBeef

6
Це рішення в цілому краще. Ефект переходу повинен і слід очікувати, що він зникне, коли він наблизиться, і згасне.
Шипля
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.