123 lines
3.2 KiB
Markdown
123 lines
3.2 KiB
Markdown
---
|
|
title: CSS3 Transitions
|
|
localeTitle: Transições CSS3
|
|
---
|
|
## Transições CSS3
|
|
|
|
O uso de CSS3 **Transitions** pode ser útil se você quiser que seu aplicativo ou sua página da Web seja mais dinâmico e bonito.
|
|
|
|
De fato, as transições permitem que você altere os valores de propriedade ( `width` , `color` ,…) de forma **suave** .
|
|
|
|
A propriedade de `transition` é uma propriedade abreviada para propriedade de `transition-property` , `transition-duration` `transition-timing-function` , `transition-timing-function` `transition-delay` , a sintaxe é a seguinte:
|
|
|
|
```css
|
|
transition: transition-property transition-duration transition-timing-function transition-delay
|
|
```
|
|
|
|
Por exemplo :
|
|
```
|
|
transition: width 2s ease-in-out 1s;
|
|
```
|
|
|
|
### Descrição das propriedades
|
|
|
|
#### `transition-property`
|
|
|
|
Especifique o **nome** da propriedade para a qual você deve aplicar uma transição:
|
|
|
|
* `background-color`
|
|
* `color`
|
|
* `width`
|
|
* `height`
|
|
* `margin`
|
|
* `border-radius`
|
|
* E assim por diante !
|
|
|
|
Por exemplo :
|
|
```
|
|
transition-property: width; /* means the transition applies on the width */
|
|
```
|
|
|
|
#### `transition-duration`
|
|
|
|
Especifique o **número de segundos ou milissegundos que** a transição deve **demorar** :
|
|
|
|
Por exemplo :
|
|
```
|
|
transition-duration: 2s /* means the transition effect last 2s */
|
|
```
|
|
|
|
#### `transition-timing-function`
|
|
|
|
Especifique a **curva** de **velocidade** do efeito de transição. Assim, você pode alterar **a velocidade da** sua **transição ao longo de sua duração** .
|
|
|
|
Aqui estão os valores mais usados:
|
|
|
|
* `linear`
|
|
* `ease`
|
|
* `ease-in`
|
|
* `ease-out`
|
|
* `ease-in-out`
|
|
* `cubic-bezier(n, n, n, n)`
|
|
|
|
Por exemplo :
|
|
|
|
```css
|
|
transition-timing-function: linear
|
|
```
|
|
|
|
NB: Todos os valores acima são de fato específicos `cubic-bezier` . `linear` , por exemplo, é equivalente a `cubic-bezier(0.25,0.1,0.25,1)`
|
|
|
|
Você pode experimentar e aprender mais sobre _Cubic Bezier_ [aqui](http://cubic-bezier.com/)
|
|
|
|
#### `transition-delay`
|
|
|
|
Especifique em **segundos ou milissegundos** quando a transição será **iniciada** .
|
|
|
|
Por exemplo :
|
|
```
|
|
transition-delay: 1s /* means wait 1s before the transition effect start */
|
|
```
|
|
|
|
### Como usar transições?
|
|
|
|
Você pode escrever uma transição de duas maneiras:
|
|
|
|
#### Usando a propriedade abreviada ( `transition` )
|
|
|
|
```css
|
|
div {
|
|
width: 200px;
|
|
transition: all 1s ease-in-out;
|
|
}
|
|
|
|
div:hover {
|
|
width: 300px;
|
|
}
|
|
```
|
|
|
|
#### Dando a todas as propriedades de transição um valor
|
|
|
|
```css
|
|
div {
|
|
width: 200px;
|
|
transition-property: width;
|
|
transition-duration: 1s;
|
|
transition-timing-function: ease-in-out;
|
|
}
|
|
```
|
|
|
|
NB: Ambos os exemplos são **equivalentes**
|
|
|
|
### Exemplos
|
|
|
|
Aqui estão algumas canetas simples contendo transições simples:
|
|
|
|
* [Transições básicas](https://codepen.io/thomlom/pen/gGqzNp)
|
|
* [Transições + JavaScript](https://codepen.io/thomlom/pen/JrxZKz?editors=1111)
|
|
|
|
#### Mais Informações:
|
|
|
|
* [w3schools: Transições CSS3](https://www.w3schools.com/css/css3_transitions.asp)
|
|
* [Documentos da Web do MDN: usando transições de CSS](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions)
|
|
* [DevTips: Transição CSS](https://www.youtube.com/watch?v=8kK-cA99SA0) |