Přechody CSS umožňují plynule měnit hodnoty vlastností po danou dobu.
Přejetím myší na prvek níže zobrazíte efekt přechodu CSS:
V této kapitole se dozvíte o následujících vlastnostech:
transition
transition-delay
transition-duration
transition-property
transition-timing-function
Čísla v tabulce určují první verzi prohlížeče, která tuto vlastnost plně podporuje.
Property | |||||
---|---|---|---|---|---|
transition | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
transition-delay | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
transition-duration | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
transition-property | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
transition-timing-function | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
Chcete-li vytvořit přechodový efekt, musíte zadat dvě věci:
vlastnost CSS, ke které chcete přidat efekt
trvání účinku
Poznámka: Pokud není zadána část trvání, nebude mít přechod žádný účinek, protože výchozí hodnota je 0.
Následující příklad ukazuje 100px * 100px červený prvek <div>. <div> element také specifikoval přechodový efekt pro vlastnost width s trváním 2 sekund:
div
{
width: 100px;
height: 100px;
background: red;
transition: width 2s;
}
Efekt přechodu se spustí, když zadaná vlastnost CSS (šířka) změní hodnotu.
Nyní zadáme novou hodnotu pro vlastnost width, když uživatel najede myší na prvek <div>:
div:hover
{
width: 300px;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: red;
transition: width 2s;
}
div:hover {
width: 300px;
}
</style>
</head>
<body>
<h1>The transition Property</h1>
<p>Hover over the div element below, to see the transition effect:</p>
<div></div>
</body>
</html>
Všimněte si, že když kurzor myši opustí prvek, postupně se změní zpět na svůj původní styl.
Následující příklad přidává přechodový efekt pro vlastnost width i height s dobou trvání 2 sekundy na šířku a 4 sekundy na výšku:
div
{
transition: width 2s, height 4s;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: red;
transition: width 2s, height 4s;
}
div:hover {
width: 300px;
height: 300px;
}
</style>
</head>
<body>
<h1>The transition Property</h1>
<p>Hover over the div element below, to see the transition effect:</p>
<div></div>
</body>
</html>
Vlastnost transition-timing-function
určuje rychlostní křivku efektu přechodu.
Vlastnost transition-timing-function může mít následující hodnoty:
ease
- určuje přechodový efekt s pomalým začátkem, pak rychlým a pomalým koncem (toto je výchozí)
linear
- určuje přechodový efekt se stejnou rychlostí od začátku do konce
ease-in
- určuje přechodový efekt s pomalým startem
ease-out
- určuje přechodový efekt s pomalým koncem
ease-in-out
- určuje přechodový efekt s pomalým začátkem a koncem
cubic-bezier(n,n,n,n)
- umožňuje definovat své vlastní hodnoty ve funkci kubický-bezier
Následující příklad ukazuje některé z různých rychlostních křivek, které lze použít:
#div1 {transition-timing-function: linear;}
#div2
{transition-timing-function: ease;}
#div3 {transition-timing-function:
ease-in;}
#div4 {transition-timing-function: ease-out;}
#div5
{transition-timing-function: ease-in-out;}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: red;
transition: width 2s;
}
#div1 {transition-timing-function: linear;}
#div2 {transition-timing-function: ease;}
#div3 {transition-timing-function: ease-in;}
#div4 {transition-timing-function: ease-out;}
#div5 {transition-timing-function: ease-in-out;}
div:hover {
width: 300px;
}
</style>
</head>
<body>
<h1>The transition-timing-function Property</h1>
<p>Hover over the div elements below, to see the different speed curves:</p>
<div id="div1">linear</div><br>
<div id="div2">ease</div><br>
<div id="div3">ease-in</div><br>
<div id="div4">ease-out</div><br>
<div id="div5">ease-in-out</div><br>
</body>
</html>
Vlastnost transition-delay
určuje zpoždění (v sekundách) pro efekt přechodu.
Následující příklad má 1 sekundu zpoždění před spuštěním:
div {
transition-delay: 1s;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: red;
transition: width 3s;
transition-delay: 1s;
}
div:hover {
width: 300px;
}
</style>
</head>
<body>
<h1>The transition-delay Property</h1>
<p>Hover over the div element below, to see the transition effect:</p>
<div></div>
<p><b>Note:</b> The transition effect has a 1 second delay before starting.</p>
</body>
</html>
Následující příklad přidá k transformaci přechodový efekt:
div {
transition:
width 2s, height 2s, transform 2s;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: red;
transition: width 2s, height 2s, transform 2s;
}
div:hover {
width: 300px;
height: 300px;
transform: rotate(180deg);
}
</style>
</head>
<body>
<h1>Transition + Transform</h1>
<p>Hover over the div element below:</p>
<div></div>
</body>
</html>
Vlastnosti přechodu CSS lze zadat jednu po druhé takto:
div
{
transition-property: width;
transition-duration: 2s;
transition-timing-function: linear;
transition-delay: 1s;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: red;
transition-property: width;
transition-duration: 2s;
transition-timing-function: linear;
transition-delay: 1s;
}
div:hover {
width: 300px;
}
</style>
</head>
<body>
<h1>The transition Properties Specified One by One</h1>
<p>Hover over the div element below, to see the transition effect:</p>
<div></div>
<p><b>Note:</b> The transition effect has a 1 second delay before starting.</p>
</body>
</html>
nebo pomocí zkrácené vlastnosti přechod
:
div
{
transition: width 2s linear 1s;
}
Zkuste to sami →
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: red;
transition: width 2s linear 1s;
}
div:hover {
width: 300px;
}
</style>
</head>
<body>
<h1>Using The transition Shorthand Property</h1>
<p>Hover over the div element below, to see the transition effect:</p>
<div></div>
<p><b>Note:</b> The transition effect has a 1 second delay before starting.</p>
</body>
</html>
V následující tabulce jsou uvedeny všechny vlastnosti přechodu CSS:
Zkrácená vlastnost pro nastavení čtyř vlastností přechodu do jediné vlastnosti
Určuje zpoždění (v sekundách) pro přechodový efekt
Určuje, kolik sekund nebo milisekund trvá dokončení přechodového efektu
Určuje název vlastnosti CSS, pro kterou je přechodový efekt určen
Určuje rychlostní křivku přechodového efektu