DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Die Eigenschaft transition ist eine Shorthand-Eigenschaft, die verwendet wird, um bis zu vier Longhand-Eigenschaften im Zusammenhang mit Übergängen darzustellen.
.element {
transition: background-color 0.5s ease;
}
Syntax
transition: [transition-property] [transition-duration] [transition-timing-function] [transition-delay];
Demo
transition-Eigenschaften ermöglichen es Elementen, Werte über eine festgelegte Dauer zu ändern, wobei die Eigenschaftsänderungen animiert werden, anstatt sofort aufzutreten. Wenn wir beispielsweise eine Box mit rotem Hintergrund haben, die bei Mouseover zu einem grünen Hintergrund wechseln soll, können wir die transition-Eigenschaft verwenden, um zwischen den Hintergrundfarben zu wechseln.
Festlegen, welche Eigenschaften übergehen sollen
Beachten Sie, dass wir die Eigenschaft background-color in der transition-Deklaration aufgeführt haben. Das teilt dem Browser mit, dass wir planen, die Hintergrundfarben zu überblenden und nichts anderes, wenn ein Übergang zwischen den Mouseover- und Nicht-Mouseover-Zuständen auftritt. Beachten Sie auch, dass wir dem Browser mitgeteilt haben, dass der Übergang zwei Sekunden dauern soll und einer ease-out Timing-Funktion folgen soll, was bedeutet, dass der Übergang schnell beginnt und gegen Ende langsamer wird.
Sie können eine bestimmte Eigenschaft wie oben angeben oder den Wert all verwenden, um sich auf alle überblendbaren Eigenschaften zu beziehen.
.element {
transition: all 0.5s ease;
background: red;
padding: 10px;
}
.element:hover {
background: green;
padding: 20px;
}
all ist für den transition-property-Teil des Shorthands angegeben. Sie können auch durch Kommas getrennte Wertesätze verwenden, um verschiedene Übergänge für verschiedene Eigenschaften durchzuführen.
.element {
transition: background 0.2s ease,
padding 0.8s linear;
}
In den meisten Fällen spielt die Reihenfolge der Werte keine Rolle – es sei denn, eine Verzögerung wird angegeben. Wenn Sie eine Verzögerung angeben, müssen Sie zuerst eine Dauer angeben. Der erste Wert, den der Browser als gültigen Zeitwert erkennt, repräsentiert immer die Dauer. Jeder nachfolgende gültige Zeitwert wird als Verzögerung interpretiert.
Einige Eigenschaften können nicht überblendet werden, da sie keine animierbaren Eigenschaften sind. Eine vollständige Liste der animierbaren Eigenschaften finden Sie in der Spezifikation.
Indem Sie den Übergang auf dem Element selbst angeben, definieren Sie, dass der Übergang in beide Richtungen erfolgen soll. Das heißt, wenn die Stile geändert werden (z. B. bei Mouseover ein), werden die Eigenschaften überblendet, und wenn die Stile zurückgeändert werden (z. B. bei Mouseover aus), werden sie überblendet. Zum Beispiel überblendet die folgende Demo bei Mouseover, aber nicht bei Mouseover aus:
Browser-Unterstützung
Diese Browser-Unterstützungsdaten stammen von Caniuse, das mehr Details enthält. Eine Zahl gibt an, dass der Browser die Funktion ab dieser Version unterstützt.
Desktop
| Chrome | Firefox | IE | Edge | Safari |
|---|---|---|---|---|
| 4* | 5* | 10 | 12 | 5.1* |
Mobil / Tablet
| Android Chrome | Android Firefox | Android | iOS Safari |
|---|---|---|---|
| 127 | 127 | 2.1* | 6.0-6.1* |
CSS-Tricks, die transition verwenden
4 Möglichkeiten, die Farbe eines Textlinks bei Mouseover zu animieren
6 kreative Ideen für CSS-Link-Hover-Effekte
Adam Argyles kranker Mouse-Out CSS Hover Effekt
Alles, was Sie über CSS Transitions wissen müssen
Animierte Media Queries
Animierende Ränder
Komplexe CSS Transitions mit Custom Properties und cubic-bezier() erstellen
CSS-Animationen und Transitions mit JavaScript steuern
Coole Hover-Effekte mit Background Properties
Coole Hover-Effekte mit CSS Text Shadow
CSS Animationen und Transitions in E-Mails
CSS Grid kann Auto-Height-Transitions durchführen
CSS Transition Timing
Unterschiedliche Transitions für Hover On / Hover Off
Wie man eine realistische Bewegungsunschärfe mit CSS Transitions erstellt
Beibehalten von CSS-Stilzuständen mit „unendlichen“ Transition Delays
Linkunterstreichungen, die zu Blockhintergründen animieren
Bewegende Hintergründe mit Mausposition
Nachbildung von Netlifys tollem Sliding Button Effekt
Shared Element Transitions
Staggered CSS Transitions
Transition Delay Delays
Der Stand der Änderung von Verläufen mit CSS-Transitions und Animationen
Transitioning Gradients
Transitions und Animationen auf CSS Generated Content
Verwendung von CSS Transitions auf Auto-Dimensionen
Verwendung von Mehrschritt-Animationen und Transitions
Sie können z-index überblenden
Weitere Informationen
- CSS Transitions Spezifikation (W3C)
- CSS Transition Shorthand Property (DigitalOcean)
- Ein interaktiver Leitfaden zu CSS Transitions (Josh Comeau)
- CSS
will-changeEigenschaft: Wann und wann nicht verwenden (DigitalOcean)
http://www.css3.info/preview/css3-transitions/
Danke für all die Leckereien, Chris... Ich komme oft auf die Seite zurück, um mir so viele großartige Tipps und, nun ja, "Tricks" zu holen.
Tricks sind es :) Danke!
Vielen Dank dafür, Chris. Ihr Link zum umfassenden Leitfaden von Adobe versucht, zu einem Unterverzeichnis Ihrer Website zu navigieren. Möglicherweise möchten Sie das korrigieren.
Hallo zusammen. Das hat bei mir in Firefox nicht funktioniert, als ich Div-Hintergrundbilder verwendet habe. Es funktioniert jedoch einwandfrei in Webkit-Browsern. Irgendwelche Ideen?
HJ, hast du das "-moz-transition:" in deinem CSS? Nur um sicherzugehen... Und welche Version von FF? Welches OS?
Hallo HJ, ja, ich habe -moz-transition. Ich verwende Firefox 23.0.1 und Mac OS X Mavericks.
Ich kann das bestätigen. Aus irgendeinem Grund wendet Firefox unter OS X beide Transitions auf die Mouseover- und Mouseout-Zustände an, selbst wenn im Hover-Zustand keine Transition-Informationen vorhanden sind.
Hallo Leute,
Dies funktionierte auch nicht beim Ändern von css3-Hintergrundgradienten und Hintergrundbildern. Wie behebe ich das? Bitte helfen Sie mir.
Hier ist der Code, den ich verwendet habe.
Es sieht so aus, als würden Sie zwei separate Elemente verwenden – die erste Zeile zielt auf die LI, während die zweite auf die A:HOVER abzielt.
Versuchen Sie stattdessen Folgendes:
Ich bin mir jedoch nicht sicher, wie der Wechsel zwischen sich nicht wiederholenden und sich wiederholenden Hintergründen gehandhabt wird.
„background-image 3s ease;“
Ja, linearer Gradient funktioniert bei mir auch nicht.
Ich fand das Tutorial nützlich und habe einige Techniken auf meiner eigenen Website verwendet. Danke.
Danke Chris für all deine
Hilfe. ;->
Das ist ein sehr guter Artikel für Anfänger.
Ich habe ihn in meiner Anwendung verwendet
http://oldc.in
Hallo, ich habe ein Problem! Das CSS funktioniert, aber im Gegensatz zu den Beispielen, die ich gesehen habe, wird meins automatisch abgespielt, wenn die Seite geladen wird.
Das Problem hierbei ist, dass, wenn die Seite geladen wird, eine Animation von keinem Schatten zu einem Schatten abgespielt wird, und dann bei Mouseover das tut, was es tun soll (Schwarz zu Blau Sch.). Gibt es eine Möglichkeit, die erste Animation zu deaktivieren?
box
box:hover
Ich denke, du brauchst den "-in"- oder "-out"-Teil für das Easing, oder?
Nein, „ease“, „ease-in“, „ease-out“ und „ease-in-out“ sind vier verschiedene Eigenschaften, und sie können nicht das Attribut von „box-shadow“ sein.
Hoppla, ich meinte, es würde nur zum Attribut 'transition' gehen. Nicht auf 'box-shadow'. Wenn du den Effekt beim Laden der Seite nicht möchtest, entferne 'transition' von #box nach #box:hover. Es sei denn, mir entgeht etwas.
Haben Sie einen Link zu einer Seite, die wir sehen könnten?
Okay, ich hab's, einige Elemente in <form> haben sich widersprochen, wie input type=”email”, und das hat dazu geführt, dass es fehlerhaft gerendert wurde. Ich weiß nicht warum, vielleicht nur HTML5-Bugs.
Oh, okay, jetzt funktioniert es einwandfrei. Weil ich die Eigenschaft „border-image“ entfernt habe O.O. Ich habe keine Ahnung warum XD.
Oh, warte, nein. Nicht diese Eigenschaft. Das Original funktioniert immer noch nicht richtig, aber ich habe eine weitere Kopie der CSS- und Index-Datei erstellt, in der ich nur dieses Div-Element und seine Formatierung in das CSS aufgenommen habe, und es hat einwandfrei funktioniert. Es muss also mit anderen Elementen in Konflikt stehen, daher kann ich wohl keine weitere Hilfe bekommen :/.
Hallo zusammen. Meine Transitions funktionieren in IE und Chrome einwandfrei, aber nicht in FF. Ich verwende 28.0, OS Mavericks.
Ich habe diesen Code von https://css-tricks.de/downloads/css-stuff/ übernommen, aber ich kann ihn in FF nicht zum Laufen bringen. IE & Chrome alles in Ordnung.
Ich bin noch in der Lernphase.
Vielen Dank für die Hilfe.
#banner {
width: 600px;
height: 200px;
margin: 0px 10px 30px 50px;
border: 8px solid #eee;
-webkit-box-shadow: 1px 1px 3px rgba(0,0,0,0.75);
border-radius:5px;
}
#banner div {
position: absolute;
}
#banner div:nth-child(2) {
}
@-webkit-keyframes wipe {
0% {
-webkit-mask-position: 0 0;
}
100% {
-webkit-mask-position: -1000px -1000px;
}
}
#rollover {
width: 250px;
height: 250px;
position: relative;
border: 8px solid #eee;
-webkit-box-shadow: 1px 1px 3px rgba(0,0,0,0.75);
}
#rollover div {
position: absolute;
top: 0;
left: 0;
}
#rollover div:nth-child(2) {
}
#rollover div:nth-child(2):hover {
-webkit-mask-position: -300px -300px;
}
Fügen Sie allen Ihren CSS3-Codes das Präfix -moz- hinzu und erstellen Sie einen weiteren Satz davon, da -webkit- hinzugefügt wird.
wie: -
@-webkit-keyframes wipe {
0% {
-webkit-mask-position: 0 0;
}
100% {
-webkit-mask-position: -1000px -1000px;
}
}
/für firefox/
@-moz-keyframes wipe {
0% {
-moz-mask-position: 0 0;
}
100% {
-moz-mask-position: -1000px -1000px;
}
}
Hallo,
Könnten Sie mir bitte mitteilen, wie ich
rotateXin diesem JavaScript-Code in einen einfachen Schiebeeffekt ändere?Ich weiß Ihre Hilfe zu schätzen.
danke
Danke, ich liebe css3 und mir gefällt das Tutorium (y)
Das habe ich noch nirgendwo wirklich dokumentiert gesehen... ist aber meiner Meinung nach extrem nützlich..
Wie viele andere wahrscheinlich zustimmen, kann es ziemlich mühsam sein, auf Transitions beschränkt zu sein, die durch Hovering ausgelöst werden, was diese großartige Funktion manchmal fast NUTZLOS macht! (und erzwingt dann die Verwendung von JavaScript in Fällen, in denen wir das NICHT müssten) ..
WENN WIR JEDOCH gerade entdeckt haben, dass wir durch Herumbasteln am 'MEDIA'-Attribut des STYLE ELEMENT in Kombination mit den Transition-Effekten von CSS3 SEHR WOHL in der Lage sind, die Transitions über eine LISTE anderer Ereignisse auszulösen, OHNE die alternative Verwendung von JavaScript/jQuery für Animationen/Einblendungen/Elementbewegungen bei Fenstergrößenänderungen usw.!
(Bsp.: [ STYLE MEDIA=”all and (min-width: 600px)” ] )
Das gibt uns eine ganze Reihe neuer Optionen, wie z. B. Bildschirmausrichtung: Querformat/Hochformat; nützlich für mobile Geräte usw.! — die vollständige Liste finden Sie auf w3schools!
Ich persönlich fand das ziemlich genial... dachte, ich teile es mit.
Ich bin sicher, Chris wusste das bereits... (lol) — Er hat immer alles ziemlich reibungslos neu angeordnet, wenn das Fenster schrumpft usw. ... (obwohl ich nie wirklich auf den Code von css-tricks.com GESCHAUT habe, um SICHER zu sein, ob dies WIRKLICH seine Methode ist oder nicht; aber es sieht definitiv so aus, als ob es so sein könnte, da die Transitions genauso flüssig sind usw. ... Ich muss jedoch sagen, dass das ALTE Design von css-tricks.com dies viel mehr demonstriert HAT, als es derzeit der Fall ist).
Viel Spaß :)
sdfsaf
Können wir die Textfarbe beim Laden der Seite ohne Mouseover ändern? Genau wie eine GIF-Animation?
Ja, das können Sie mit der @keyframes-Regel. Bitte lesen Sie http://www.w3schools.com/css/css3_animations.asp und üben Sie die Beispiele.
Ich bin immer noch verwirrt mit
-webkit-transition-timing-function
‘s Wert…
Schöner Artikel. Bitte schreiben Sie über Transitions mit SVG. Sie können sich die Miniaturansichten auf dieser 3D-Drucker-Website ansehen.
css
.my-gallery .my-icon-gallery
{
position: absolute;
z-index: 10000;
top: 50%;
left: 50%;
right: 0;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 80px;
height: 80px;
display: inline-block;
fill: rgba(255, 255, 255, 0);
stroke: rgba(255, 255, 255, 1);
stroke-width: .05em;
stroke-opacity: 1;
stroke-linecap: butt;
stroke-linejoin: bevel;
stroke-dasharray: 0, 150;
-webkit-transition: fill 1.5s, stroke-dasharray .75s, stroke-opacity 1.5s ease;
-moz-transition: fill 1.5s, stroke-dasharray .75s, stroke-opacity 1.5s ease;
-ms-transition: fill 1.5s, stroke-dasharray .75s, stroke-opacity 1.5s ease;
-o-transition: fill 1.5s, stroke-dasharray .75s, stroke-opacity 1.5s ease;
transition: fill 1.5s, stroke-dasharray .75s, stroke-opacity 1.5s ease;
}
js: (wenn doc bereit ist)
var url =’/css/simpleline-icons.svg’;
var c=new XMLHttpRequest(); c.open(‘GET’, url, false); c.setRequestHeader(‘Content-Type’, ‘text/xml’); c.send();
document.body.insertBefore(c.responseXML.firstChild, document.body.firstChild)
.my-gallery:hover > .my-icon-gallery
{
fill: rgba(255, 255, 255, 1);
stroke-dasharray: 150, 1;
stroke-opacity: 0;
}
.my-icon-gallery:after
{
content: ”;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
html
Sieht gut aus :)
So eine einfache Sache, aber es kann einen großen Unterschied im Gefühl einer Website machen.
Für diejenigen, die möchten, dass ihre Transition von Rot nach Grün über Orange verläuft, stellen Sie einfach die
background-colormitHSL(Farbton, Sättigung, Helligkeit) ein. Zum Beispiel: http://codepen.io/anon/pen/xbzGeoDanke für Ihre Zeit.
Um separate Transitions für Hover-over und Hover-off hinzuzufügen, fügen Sie die -off Transition zum Elementstil und die -on Transition zum :hover-Stil hinzu. Ich habe das obige CodePen als Beispiel geforkt.
Ich habe eine Frage. Kann ich einen Overlay-Text hinzufügen, wenn ich über mein Bild-Div fahre?
Bitte helfen Sie mir.
Ja, das können Sie tun.
CSS
.container {
position:relative;
overflow:hidden;
}
.container .textbox {
width:200px;
height:150px;
position:absolute;
oben:0;
links:0;
margin-top:-160px;
border-radius:5px;
background-color: rgba(0,0,0,0.75);
-webkit-box-shadow: inset 0px 0px 5px 2px rgba(255,255,255,.75);
box-shadow: inset 0px 0px 5px 2px rgba(255,255,255,.75);
}
.container:hover .textbox {
margin-top:0;
}
.text {
padding-top: 50px;
}
.textbox {
-webkit-transition: all 0.7s ease;
transition: all 0.7s ease;
}
HTML
TEXT
Ich habe derzeit ein Problem mit der Transition. Ich bin mir nicht sicher, ob ich zu viele habe oder ob mir etwas entgangen ist. Das Hover-CSS und die Transition-Sachen sind unten. Ich versuche, ein Bild so zu animieren, dass es bei Mouseover nach links verschoben wird.
#hoverpage {
width: 500px;
height: 334px;
position: relative;
overflow-x: hidden;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
}
.insidehover {
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
position: absolute;
width: 500px;
height: 334px;
}
#hoverpage:hover .insidehover {
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
left: -500px;
}
Ernsthaft, vielen Dank. Ich habe überall gesucht, wie man mit der Ease-Transition zum Normalzustand eines Links zurückkehrt.
Vielen Dank, es war sehr hilfreich.
Vielen Dank. wirklich nützlich.
Wie vergrößere ich das Bild? Welche Transition verwende ich?
Ich liebe css-tricks.com einfach <3
Schönes Tutorial wie immer, aber ich wollte Sie wissen lassen, dass die Rot/Grün-Transition nicht die beste Farbwahl ist. Wie Sie wahrscheinlich wissen, ist Rot-Grün-Schwäche ziemlich verbreitet, und ich persönlich kann überhaupt keine Farbveränderung sehen.
Welchen Sinn hat dieser Transition-Effekt, wenn er auf iOS nicht funktioniert?
Dieses Tutorial hat Transitions tatsächlich besser erklärt als w3schools und die meisten anderen Tutorials, die ich besucht habe, um dieses Konzept zu verstehen.
Toller Beitrag!
Hatte Schwierigkeiten, "background-color" zu animieren.
Nachdem ich hierher gekommen bin und es in "background" geändert habe, hat es funktioniert!!
Körper {
font-family: “Helvetica Neue”,Helvetica,Arial,sans-serif;
font-size: 18px;
/* line-height:22px;*/
}
div {
display:block;
}
h2 {
color:blue;
text-align:center;
}
header img {
float: left;
clear:right;
margin-bottom:.5%;
margin-left:20px;
margin-top:18px;
margin-right:20px;
}
header h4 {
font-size:30px;
float:right;
clear:left;
font-family:verdana;
color:blue;
clear:right;
margin-top:8px;
margin-right:2%;
}
header ul {
float:right;
clear:left;
list-style-type:none;
padding:0;
margin:0;
margin-top:-3%;
margin-right:2%;
}
header ul li a {
display: block;
padding: 0;
}
header ul li {
float:left;
border: 2px solid #ffffff;
border-radius:.4em;
margin: .5em;
}
#section {
margin-left:10%;
margin-top:2%;
text-align:center;
}
#main {
margin-left:3%;
float:left;
clear:right;
width:20%;
text-align:center;
}
Nachdem die Transition beendet ist, springt es zurück. Kann ich es langsam ausklingen lassen???
Hallo zusammen. Weiß jemand, wie lange die Standardzeit für eine Transition ist?
Oder die Standardzeit für die Reaktion auf Mouseover? Denn auf meiner Seite reagiert a nicht auf schnelle Mausbewegungen. Die Frage ist, wie lange die Maus schweben muss, bevor onhover ausgelöst wird?
Hallo.
Ich frage mich, ob es eine Möglichkeit gibt,
.finger3:hover {
height: 200px;
transition: 1s ease-in-out;
}
nur in eine Richtung zu verwenden, z. B. nur nach oben, sodass der untere Teil stillsteht und die Transition am oberen Rand des Elements stattfindet.
Sind die Präfixe -webkit, -moz, -o erforderlich?
-webkit-transition: background-color 500ms ease-out 1s;
-moz-transition: background-color 500ms ease-out 1s;
-o-transition: background-color 500ms ease-out 1s;
transition: background-color 500ms ease-out 1s;
Liste der animierbaren Eigenschaften
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties
Aha! Der Wert 'all' von transition ist jetzt verstanden. Danke.
Fantastisch, das hat alles erklärt.
Eine Liste von Eigenschaften, die explizit nicht animiert werden können, wäre großartig (irgendwo, nicht unbedingt auf 'Tricks).
Hat jemand erfolgreich ein
img-Element vonposition:unset;display:none;
zu
position:absolute;display:block;
zusammen mit verschiedenen
top- undright-Werten animiert, um das Bild tatsächlich zu bewegen?Ich kämpfe selbst damit.
positionist nicht in der MDN-Liste der Eigenschaften enthalten, die animiert werden können, aberright,left,top,bottomsind aufgelistet! seufzKönnten Sie bitte ein Best-Practice-Beispiel für die Transition zwischen zwei Hintergrundfarbzuständen unter Verwendung von CSS-Variablen geben?
Danke!
Hey! Hier ist eine Hover-Transition zwischen zwei Farben: