Transition CSS3
En CSS3, nous pouvons ajouter un certain effet en passant d'un style à un autre sans utiliser d'animation Flash ou JavaScript.
Comment ça marche ?
La transition CSS3 est l'effet d'un élément changeant progressivement d'un style à un autre.
Pour y parvenir, deux choses doivent être précisées :
Spécifiez la propriété CSS pour ajouter l'effet
Spécifiez la durée de l'effet.
Effet de transition appliqué à l'attribut width, d'une durée de 2 secondes :
div
{
transition : width 2s;
-webkit-transition: width 2s; /* Safari */
}
Remarque : Si la durée n'est pas précisée, la transition n'aura aucun effet car la valeur par défaut est 0.
L'effet changera lorsque la valeur de la propriété CSS spécifiée change. Une propriété CSS typique change lorsque l'utilisateur passe la souris sur un élément :
Exemple
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <style> div { width:100px; height:100px; background: #d7ffb5; transition:width 2s; -webkit-transition:width 2s; /* Safari */ } div:hover { width:300px; } </style> </head> <body> <div></div> <p>鼠标移动到 div 元素上,查看过渡效果。</p> </body> </html>
Exécutez le programme pour l'essayer
Modifications multiples
Pour ajouter plusieurs styles d'effets de transformation, ajoutez des attributs séparés par des virgules :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <style> div { width: 100px; height: 100px; background: #92ffc7; -webkit-transition: width 2s, height 2s, -webkit-transform 2s; /* For Safari 3.1 to 6.0 */ transition: width 2s, height 2s, transform 2s; } div:hover { width: 200px; height: 200px; -webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */ transform: rotate(180deg); } </style> </head> <body> <div>鼠标移动到 div 元素上,查看过渡效果。</div> </body> </html>
Exécutez Essayez le programme
Attributs de transition
Le tableau suivant répertorie tous les attributs de transition :
属性 | 描述 | CSS |
---|---|---|
transition | 简写属性,用于在一个属性中设置四个过渡属性。 | 3 |
transition-property | 规定应用过渡的 CSS 属性的名称。 | 3 |
transition-duration | 定义过渡效果花费的时间。默认是 0。 | 3 |
transition-timing-function | 规定过渡效果的时间曲线。默认是 "ease"。 | 3 |
transition-delay | 规定过渡效果何时开始。默认是 0。 | 3 |
Instance
Utiliser tous les attributs de transition :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <style> div { width:100px; height:100px; background: #ffedd7; transition-property:width; transition-duration:1s; transition-timing-function:linear; transition-delay:2s; /* Safari */ -webkit-transition-property:width; -webkit-transition-duration:1s; -webkit-transition-timing-function:linear; -webkit-transition-delay:2s; } div:hover { width:200px; } </style> </head> <body> <div>过渡</div> <p>鼠标移动到 div 元素上,查看过渡效果。</p> <p><b>注意:</b> 过渡效果需要等待两秒后才开始。</p> </body> </html>
Exécuter le programme pour essayez-le
Le même effet de transition que l'exemple ci-dessus, mais en utilisant l'attribut de transition abrégé :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <style> div { width:100px; height:100px; background:red; transition:width 1s linear 2s; /* Safari */ -webkit-transition:width 1s linear 2s; } div:hover { width:200px; } </style> </head> <body> <div></div> <p>鼠标移动到 div 元素上,查看过渡效果。</p> <p><b>注意:</b> 过渡效果需要等待两秒后才开始。</p> </body> </html>
Exécutez le programme pour l'essayer