Эффект Fade при наведении ссылки?

на многих сайтах, таких как http://www.clearleft.com, вы заметите, что когда ссылки зависнут, они будут исчезать в другую цвет в отличие от немедленного переключения, действие по умолчанию.

Я предполагаю, что для создания этого эффекта используется JavaScript, знает ли кто-нибудь, как?

Ответ 1

В настоящее время люди просто используют переходы CSS3, потому что это намного проще, чем возиться с JS, поддержка браузера достаточно хорошая, и она просто косметическая, поэтому не имеет значения, не работает ли она.

Что-то вроде этого выполняет задание:

a {
  color:blue;
  /* First we need to help some browsers along for this to work.
     Just because a vendor prefix is there, doesn't mean it will
     work in a browser made by that vendor either, it just for
     future-proofing purposes I guess. */
  -o-transition:.5s;
  -ms-transition:.5s;
  -moz-transition:.5s;
  -webkit-transition:.5s;
  /* ...and now for the proper property */
  transition:.5s;
}
a:hover { color:red; }

Вы также можете переводить определенные свойства CSS с различными таймингами и функциями ослабления, разделяя каждое объявление запятой, например:

a {
  color:blue; background:white;
  -o-transition:color .2s ease-out, background 1s ease-in;
  -ms-transition:color .2s ease-out, background 1s ease-in;
  -moz-transition:color .2s ease-out, background 1s ease-in;
  -webkit-transition:color .2s ease-out, background 1s ease-in;
  /* ...and now override with proper CSS property */
  transition:color .2s ease-out, background 1s ease-in;
}
a:hover { color:red; background:yellow; }

Демо здесь

Ответ 2

Вы можете сделать это с помощью JQueryUI:

$('a').mouseenter(function(){
  $(this).animate({
    color: '#ff0000'
  }, 1000);
}).mouseout(function(){
  $(this).animate({
    color: '#000000'
  }, 1000);
});

http://jsfiddle.net/dWCbk/

Ответ 3

Я знаю в вопросе, в котором вы заявляете: "Я полагаю, что JavaScript используется для создания этого эффекта", но CSS тоже можно использовать, пример ниже.

CSS

.fancy-link {
   color: #333333;
   text-decoration: none;
   transition: color 0.3s linear;
   -webkit-transition: color 0.3s linear;
   -moz-transition: color 0.3s linear;
}

.fancy-link:hover {
   color: #F44336;
}

HTML

<a class="fancy-link" href="#">My Link</a>

И вот JSFIDDLE для вышеуказанного кода!


Марсель в одном из ответов указывает, что вы можете "переходить на несколько свойств CSS", вы также можете использовать "все" для создания элемента со всеми вашими стилями: hover, как показано ниже.

CSS

.fancy-link {
   color: #333333;
   text-decoration: none;
   transition: all 0.3s linear;
   -webkit-transition: all 0.3s linear;
   -moz-transition: all 0.3s linear;
}

.fancy-link:hover {
   color: #F44336;
   padding-left: 10px;
}

HTML

<a class="fancy-link" href="#">My Link</a>

И вот JSFIDDLE для примера "все"!

Ответ 4

Попробуйте это в своем css:

.a {
    transition: color 0.3s ease-in-out;
}
.a {
    color:turquoise;
}
.a:hover {
    color: #454545;
}