A CSS-átmenetek lehetővé teszik a tulajdonságok zökkenőmentes megváltoztatását egy adott időtartamon keresztül.
Vigye az egeret az alábbi elemre a CSS-átmeneti hatás megtekintéséhez:
Ebben a fejezetben a következő tulajdonságokat ismerheti meg:
transition
transition-delay
transition-duration
transition-property
transition-timing-function
A táblázatban szereplő számok az első böngészőverziót adják meg, amely teljes mértékben támogatja a tulajdonságot.
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 |
Átmeneti effektus létrehozásához két dolgot kell megadnia:
az a CSS-tulajdonság, amelyhez effektust szeretne hozzáadni
a hatás időtartama
Megjegyzés: Ha az időtartam rész nincs megadva, az átmenetnek nincs hatása, mert az alapértelmezett érték 0.
A következő példa egy 100 képpont * 100 képpont méretű piros <div> elemet mutat be. A <div> elem egy átmeneti effektust is megadott a width tulajdonsághoz, 2 másodperces időtartammal:
div
{
width: 100px;
height: 100px;
background: red;
transition: width 2s;
}
Az átmeneti hatás akkor indul el, amikor a megadott CSS-tulajdonság (szélesség) értéke megváltozik.
Most adjunk meg egy új értéket a width tulajdonságnak, amikor a felhasználó a <div> elem fölé viszi az egeret:
div:hover
{
width: 300px;
}
Próbálja ki Ön is →
<!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>
Figyelje meg, hogy amikor a kurzor kilép az elemből, az fokozatosan visszavált az eredeti stílusára.
A következő példa átmeneti effektust ad hozzá mind a szélesség, mind a magasság tulajdonsághoz, időtartammal 2 másodperc a szélességhez és 4 másodperc a magassághoz:
div
{
transition: width 2s, height 4s;
}
Próbálja ki Ön is →
<!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>
A transition-timing-function
tulajdonság az átmeneti effektus sebességgörbéjét adja meg.
Az átmeneti időzítés függvény tulajdonságának a következő értékei lehetnek:
ease
- egy átmeneti effektust ad meg lassú kezdéssel, majd gyorsan, majd lassan véget ér (ez az alapértelmezett)
linear
- az elejétől a végéig azonos sebességű átmeneti effektust határoz meg
ease-in
- lassú indítású átmeneti effektust határoz meg
ease-out
- lassú végű átmeneti hatást határoz meg
ease-in-out
- lassú kezdetű és végű átmeneti hatást határoz meg
cubic-bezier(n,n,n,n)
- lehetővé teszi saját értékek meghatározását egy kocka-bezier függvényben
A következő példa néhány használható sebességgörbét mutat be:
#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;}
Próbálja ki Ön is →
<!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>
Az transition-delay
tulajdonság késleltetést ad meg (másodpercben) az átmeneti effektushoz.
A következő példa 1 másodperces késleltetéssel indul indítás előtt:
div {
transition-delay: 1s;
}
Próbálja ki Ön is →
<!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>
A következő példa átmeneti effektust ad az átalakításhoz:
div {
transition:
width 2s, height 2s, transform 2s;
}
Próbálja ki Ön is →
<!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>
A CSS átmenet tulajdonságai egyenként adhatók meg, így:
div
{
transition-property: width;
transition-duration: 2s;
transition-timing-function: linear;
transition-delay: 1s;
}
Próbálja ki Ön is →
<!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>
vagy a transition
gyorsírási tulajdonság használatával:
div
{
transition: width 2s linear 1s;
}
Próbálja ki Ön is →
<!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>
Az alábbi táblázat felsorolja az összes CSS-átmeneti tulajdonságot:
Gyorsírási tulajdonság a négy átmeneti tulajdonság egyetlen tulajdonsággá történő beállításához
Megadja az átmeneti effektus késleltetését (másodpercben).
Meghatározza, hogy egy átmeneti effektus hány másodpercig vagy ezredmásodpercig tart
Megadja annak a CSS-tulajdonságnak a nevét, amelyre az átmeneti effektus vonatkozik
Megadja az átmeneti effektus sebességgörbéjét