web-dev-qa-db-ja.com

ホバー効果を遅くする方法はありますか?

ホバー効果を遅くする方法はありますか?画像のホバー時にテキストを表示するホバー効果(削除済み)があります。少し遅くしたいです。それは、画像がどれだけ速く切り替わるかに少し耳障りです。

どうすればいいですか?

13
S. Fellig

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;
40
eivers88

テキストの表示方法によって異なります。 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;
}

デモ

編集:デビッド・トーマスは、トランジションで表示を変更することはできないと言っています。不透明度を使用するように上記を更新しました。

6
Zhihao

これはかなり遅いことは知っていますが、CSS3アニメーションを調べてください。私はGarryのModロード画面の1つでアニメーションを使用しています。

/* 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>

それがあなたの探している結果ではないことは知っていますが、あなたと他の人がこれが役立つと確信していると思います。

3
Aochi Toxx

必要に応じて、jQuery .fadeIn() http://api.jquery.com/fadeIn/ を使用できます。

.fadeIn([期間] [、コールバック])
期間 アニメーションの実行時間を決定する文字列または数値。
callback アニメーションが完了したら呼び出す関数。

2
Andrey