Есть ли способ замедлить эффект наведения?

Есть ли способ замедлить эффект наведения? У меня есть эффект зависания на моем сайте (удален), который отображает текст при наведении изображений. Я хочу немного замедлить эффект. Это немного напоминает, как быстро изображение переключается.

Как мне это сделать?

Ответ 1

Вы можете добавить css3-переходы:

-webkit-transition: all 500ms ease;
-moz-transition: all 500ms ease;
-ms-transition: all 500ms ease;
-o-transition: all 500ms ease;
transition: all 500ms ease;

Ответ 2

Это зависит от того, как вы показываете текст. Если вы изменяете свойство CSS, вы можете сделать это с помощью переходов CSS3. Ниже приведен пример.

HTML:

<div id="A"></div><div id="B"></div>

CSS

div {
    height: 100px;
    width: 100px;
    position: absolute;
    top: 0;
    left: 0;

    -moz-transition: opacity 4s; /* Firefox */
    -webkit-transition: opacity 4s; /* Safari and Chrome */
    -o-transition: opacity 4s; /* Opera */
    transition: opacity 4s;
}
#A {
    background: red;
    opacity: 1;
    z-index: 1;
}
#B {
    background: blue;
    opacity: 0;
    z-index: 2;
}
#B:hover {
    opacity: 1;
}

Демо

Изменить: Дэвид Томас сказал мне, что вы не можете изменить отображение с переходами. Я обновил выше, чтобы использовать непрозрачность.

Ответ 3

Я знаю, что это довольно поздно, но посмотрите на анимацию CSS3. Я использую анимацию на одном из экранов загрузки Garry Mod.

/* Styles go here */

button {
  margin-left: 50%;
  margin-right: 50%;
}
button:hover {
  -webkit-animation: breathing 5s ease-out infinite normal;
  animation: breathing 5s ease-out infinite normal;
}
@-webkit-keyframes breathing {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  25% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
  }
  50% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  75% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes breathing {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  25% {
    -webkit-transform: scale(1.5);
    -ms-transform: scale(1.5);
    transform: scale(1.5);
  }
  50% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  75% {
    -webkit-transform: scale(1.5);
    -ms-transform: scale(1.5);
    transform: scale(1.5);
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
<!DOCTYPE html>
<html>

<head>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
</head>

<body>
  <h1>Hello Plunker!</h1>
  <p>Below I have a button that changes size on mouse hover useing CSS3</p>
  <button>Hover over me!</button>
</body>

</html>

Ответ 4

Если вы хотите, вы можете использовать jQuery.fadeIn() http://api.jquery.com/fadeIn/

.fadeIn([продолжительность] [, обратный вызов])
продолжительность строка или номер, определяющий продолжительность выполнения анимации.
callback для вызова после завершения анимации.