Gibt es eine Möglichkeit, den Hover-Effekt zu verlangsamen?

Lesezeit: 3 Minuten

Benutzeravatar von S. Fellig
S. Fellig

Gibt es eine Möglichkeit, einen Hover-Effekt zu verlangsamen? Ich habe einen Hover-Effekt auf meiner Website (entfernt), der Text anzeigt, wenn der Mauszeiger über die Bilder bewegt wird. Ich möchte die Wirkung etwas verlangsamen. Es ist ein bisschen erschütternd, wie schnell das Bild umschaltet.

Wie würde ich das machen?

Sie könnten CSS3-Übergänge hinzufügen:

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

Benutzeravatar von Zhihao
Zhihao

Es hängt davon ab, wie Sie den Text anzeigen. Wenn Sie eine CSS-Eigenschaft ändern, können Sie dies mit tun CSS3-Übergänge. Unten ist ein Beispiel.

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;
}

Demo

Bearbeiten: David Thomas hat mir gesagt, dass Sie die Anzeige nicht mit Übergängen ändern können. Ich habe das Obige aktualisiert, um die Deckkraft zu verwenden.

  • Dazwischen kann man nicht ‘wechseln’ display Zustände; sicherlich nicht dazwischen display: block und display: none. Der Inhalt springt einfach und wird dann vielleicht animiert.

    – David Thomas

    22. Juni 2012 um 21:56 Uhr

  • @DavidThomas, danke für die Hinweise. Das wusste ich nicht. Vielleicht geht das mit Deckkraft? Ich habe meine Antwort bearbeitet, um dies widerzuspiegeln.

    – Zhihao

    22. Juni 2012 um 21:57 Uhr

  • Ja, du kannst umsteigen opacity. Ich finde das hier eine bessere Option.

    – BoltClock

    22. Juni 2012 um 21:58 Uhr


  • opacity und height (und andere Eigenschaften mit angegebenen Werten grundsätzlich nicht auto) kann sicherlich reibungslos übergehen.

    – David Thomas

    22. Juni 2012 um 21:58 Uhr

  • Der Übergang (der nicht vorangestellte) sollte immer zuletzt stehen

    – jaw

    22. Juni 2012 um 23:51 Uhr

Ich weiß, das ist ziemlich spät, aber schauen Sie sich CSS3-Animationen an. Ich verwende eine Animation auf einem meiner Garry’s Mod-Ladebildschirme.

/* 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="https://stackoverflow.com/questions/11164567/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>

Ich weiß, es ist nicht ganz das Ergebnis, nach dem Sie suchen, aber ich bin sicher, dass Sie und andere dies nützlich finden können.

Wenn Sie möchten, können Sie jQuery .fadeIn() verwenden http://api.jquery.com/fadeIn/

.einblenden( [duration] [, callback] )
Dauer Zeichenfolge oder Zahl, die bestimmt, wie lange die Animation ausgeführt wird.
zurückrufen Funktion, die aufgerufen werden soll, sobald die Animation abgeschlossen ist.

1401040cookie-checkGibt es eine Möglichkeit, den Hover-Effekt zu verlangsamen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy