{"id":260940,"date":"2023-08-13T09:06:00","date_gmt":"2023-08-13T06:06:00","guid":{"rendered":"https:\/\/inform.click\/de-vida-as-suas-paginas-da-web-com-animacoes-e-transicoes-css\/"},"modified":"2023-08-13T09:51:00","modified_gmt":"2023-08-13T06:51:00","slug":"de-vida-as-suas-paginas-da-web-com-animacoes-e-transicoes-css","status":"publish","type":"post","link":"https:\/\/inform.click\/pt-pt\/de-vida-as-suas-paginas-da-web-com-animacoes-e-transicoes-css\/","title":{"rendered":"D\u00ea vida \u00e0s suas p\u00e1ginas da Web com anima\u00e7\u00f5es e transi\u00e7\u00f5es CSS"},"content":{"rendered":"<p>\n  Os designs de sites est\u00e3o em constante evolu\u00e7\u00e3o. Desde design responsivo, tipografia bonita, esquemas de codifica\u00e7\u00e3o de cores perfeitos, ilustra\u00e7\u00f5es, os criadores do site est\u00e3o apresentando novas ideias e designs todos os dias.\n<\/p>\n<p>\n  Atualmente, os usu\u00e1rios t\u00eam grandes expectativas em rela\u00e7\u00e3o \u00e0s interfaces de usu\u00e1rio devido ao conte\u00fado de alta qualidade dispon\u00edvel na Internet. \u00c0 medida que as interfaces do site est\u00e3o evoluindo, a tecnologia por tr\u00e1s delas tamb\u00e9m est\u00e1 evoluindo. Um dos principais componentes respons\u00e1veis \u200b\u200bpor aprimorar a interface do site \u00e9 o <strong>CSS<\/strong>.\n<\/p>\n<p>\n  CSS ou Cascading Style Sheets s\u00e3o respons\u00e1veis \u200b\u200bpor tornar os sites muito interativos, definindo seu estilo, layout e designs. O mais recente padr\u00e3o para CSS, ou seja, o CSS3 introduziu o conceito de <strong>anima\u00e7\u00f5es<\/strong> e <strong>transforma\u00e7\u00f5es<\/strong> que aprimoram a experi\u00eancia do usu\u00e1rio adicionando profundidade extra \u00e0 interface do usu\u00e1rio. Com anima\u00e7\u00f5es e transi\u00e7\u00f5es CSS, voc\u00ea pode contar hist\u00f3rias, criar efeitos luxuosos e tornar a intera\u00e7\u00e3o do usu\u00e1rio com seu site muito eficaz e significativa.\n<\/p>\n<p>\n  Uma anima\u00e7\u00e3o \u00e9 apenas uma simula\u00e7\u00e3o de movimento que \u00e9 criada exibindo uma s\u00e9rie de objetos como imagens, um ap\u00f3s o outro. A transi\u00e7\u00e3o, por outro lado, \u00e9 basicamente um processo no qual um objeto muda de um estado para outro. Mas, quando falamos de anima\u00e7\u00f5es na web, existem basicamente tr\u00eas tipos \u2013 <strong>anima\u00e7\u00f5es CSS<\/strong> ou anima\u00e7\u00f5es de quadro-chave, <strong>transi\u00e7\u00f5es CSS<\/strong> e <strong>anima\u00e7\u00f5es JavaScript<\/strong>.\n<\/p>\n<p>\n  Anima\u00e7\u00f5es CSS\n<\/p>\n<p>\n  Para criar anima\u00e7\u00f5es em CSS, precisamos alterar as propriedades CSS de um elemento, como uma imagem ou texto, por um determinado per\u00edodo de tempo. Podemos alterar as propriedades dos elementos quantas vezes quisermos e tamb\u00e9m definir a dura\u00e7\u00e3o da anima\u00e7\u00e3o.\n<\/p>\n<h5>\n  Especificando @keyframes<br \/>\n<\/h5>\n<p>\n  As anima\u00e7\u00f5es CSS s\u00e3o definidas bit com quadros-chave. Esses quadros-chave s\u00e3o os pontos intermedi\u00e1rios da anima\u00e7\u00e3o. Todas as anima\u00e7\u00f5es CSS s\u00e3o especificadas na regra @keyframes. Esses quadros-chave especificam o que acontece com o elemento em um determinado momento, ou seja,\n<\/p>\n<ul>\n<li>quais propriedades est\u00e3o mudando\n  <\/li>\n<li>quando o elemento \u00e9 animado\n  <\/li>\n<li>como o elemento \u00e9 animado\n  <\/li>\n<\/ul>\n<p>\n  Voc\u00ea pode definir seu pr\u00f3prio quadro-chave como:\n<\/p>\n<pre><code>@keyframes animation_name\n{\nfrom{ property: value; }\nto{ property: value; }\n}<\/code><\/pre>\n<p>\n  Aqui &#8216;para' e &#8216;de' especificam o in\u00edcio e o fim da anima\u00e7\u00e3o. Tamb\u00e9m podemos especificar anima\u00e7\u00f5es para momentos intermedi\u00e1rios de tempo entre o in\u00edcio e o fim, assim:\n<\/p>\n<pre><code>@keyframes name\n{\n0%{ property: value; }\n50%{ property: value; }\n100%{ property: value; }\n}<\/code><\/pre>\n<p>\n  Aqui 0% representa o in\u00edcio da anima\u00e7\u00e3o, 100% representa o final da anima\u00e7\u00e3o e 50% significa a mudan\u00e7a entre o in\u00edcio e o fim. Mas, como dizemos ao navegador por quanto tempo a anima\u00e7\u00e3o deve ocorrer? Fazemos isso com a ajuda de certas <strong>propriedades de anima\u00e7\u00e3o<\/strong>. Essas propriedades de anima\u00e7\u00e3o est\u00e3o associadas ao elemento a ser animado. Por exemplo:\n<\/p>\n<pre><code>element_name\n{\nanimation_property: value;\nstyle_property: value;\n}<\/code><\/pre>\n<p>\n  Aqui, o elemento pode ser qualquer tag HTML como div, span, img, p etc. e <code>style_property<\/code>qualquer propriedade de estilo CSS como background_color, width, height etc.\n<\/p>\n<ol>\n<li>\n    <strong>@keyframes<\/strong>: Keyframes s\u00e3o usados \u200b\u200bpara especificar o c\u00f3digo de anima\u00e7\u00e3o conforme discutido acima.\n  <\/li>\n<li>\n    <strong>animation-name<\/strong>: O nome especificado com @keyframes \u00e9 o nome da anima\u00e7\u00e3o. Este nome \u00e9 usado para referenciar os quadros-chave com o elemento a ser animado.\n  <\/li>\n<li>\n    <strong>animation-duration<\/strong>: \u00c9 usado para especificar o tempo de dura\u00e7\u00e3o da anima\u00e7\u00e3o em segundos ou milissegundos. Por exemplo, se definirmos para 5 segundos, a anima\u00e7\u00e3o ser\u00e1 executada por apenas 5 segundos. Se n\u00e3o definirmos essa propriedade, a anima\u00e7\u00e3o n\u00e3o ser\u00e1 executada, pois seu valor padr\u00e3o \u00e9 0.\n  <\/li>\n<li>\n    <strong>animation-delay<\/strong>: Podemos atrasar o in\u00edcio da anima\u00e7\u00e3o especificando o tempo de atraso da anima\u00e7\u00e3o. Por exemplo, se voc\u00ea deseja iniciar a anima\u00e7\u00e3o 5 segundos ap\u00f3s o carregamento da p\u00e1gina no navegador, basta definir o atraso da anima\u00e7\u00e3o para 5s.\n  <\/li>\n<li>\n    <strong>animation-direction<\/strong>: Podemos dizer ao navegador se uma anima\u00e7\u00e3o se move na dire\u00e7\u00e3o reversa ou em ciclos alternados com esta propriedade. Por exemplo, se voc\u00ea deseja que a anima\u00e7\u00e3o seja executada do in\u00edcio ao fim, defina o valor de animation-duration como &#8216;normal'. Se voc\u00ea deseja que ele seja executado de ponta a ponta, basta definir o valor como &#8216;reverso'.\n  <\/li>\n<li>\n    <strong>animation-fill-mode<\/strong>: Podemos especificar o estilo do elemento quando a anima\u00e7\u00e3o n\u00e3o est\u00e1 sendo reproduzida com este modo, ou seja, quando a anima\u00e7\u00e3o \u00e9 atrasada ou finalizada, qual deve ser o estilo do elemento.\n  <\/li>\n<li>\n    <strong>animation-iteration-count<\/strong>: O n\u00famero de vezes que uma anima\u00e7\u00e3o pode ser reproduzida \u00e9 representado por esta propriedade. Por exemplo, se voc\u00ea deseja reproduzir a anima\u00e7\u00e3o uma vez, defina-a como 1, ou se deseja que a anima\u00e7\u00e3o seja reproduzida indefinidamente, defina-a como &#8216;infinito'.\n  <\/li>\n<li>\n    <strong>animation-timing-function<\/strong>: Esta propriedade \u00e9 usada para especificar a curva de velocidade da anima\u00e7\u00e3o como linear, acelera\u00e7\u00e3o ou desacelera\u00e7\u00e3o.\n  <\/li>\n<li>\n    <strong>Anima\u00e7\u00e3o<\/strong>: \u00c9 a propriedade abreviada para definir todas as propriedades da anima\u00e7\u00e3o.\n  <\/li>\n<\/ol>\n<p>\n  Por exemplo, voc\u00ea pode animar um objeto saltitante com o trecho de c\u00f3digo a seguir. Observe como a nota\u00e7\u00e3o abreviada para anima\u00e7\u00e3o foi usada aqui.\n<\/p>\n<pre><code>@keyframes slide {\n 0% {\n  left: 0;\n  top: 0;\n }\n 50% {\n  left: 244px;\n  top: 100px;\n }\n 100% {\n  left: 488px;\n  top: 0;\n }\n}\n \n.stage:hover .object {\n animation: slide 2s linear;    \/*shorthand animation property*\/\n}\n \n.object {\n background: #2db34a;\n border-radius: 50%;\n height: 50px;\n position: absolute;\n width: 50px;\n}<\/code><\/pre>\n<h3>\n  Transi\u00e7\u00f5es<br \/>\n<\/h3>\n<p>\n  As transi\u00e7\u00f5es CSS s\u00e3o aplicadas \u00e0s propriedades dos elementos por uma determinada dura\u00e7\u00e3o de tempo com base em certas fun\u00e7\u00f5es de <strong>temporiza\u00e7\u00e3o,<\/strong> tamb\u00e9m conhecidas como fun\u00e7\u00f5es de easing. Por fun\u00e7\u00e3o de temporiza\u00e7\u00e3o, queremos dizer uma fun\u00e7\u00e3o que mudar\u00e1 as propriedades dos elementos de um estado para outro, como progress\u00e3o linear, acelera\u00e7\u00e3o ou desacelera\u00e7\u00e3o. Voc\u00ea deve ter notado que uma imagem desliza ou se transforma em outra imagem ao passar o mouse ou um som \u00e9 reproduzido ao clicar no mouse. Todos esses s\u00e3o efeitos de transi\u00e7\u00e3o que podem tornar um site interativo.\n<\/p>\n<p>\n  <strong>As fun\u00e7\u00f5es de easing<\/strong> s\u00e3o importantes para criar transi\u00e7\u00f5es. Eles especificam como as propriedades ser\u00e3o alteradas. Eles tamb\u00e9m podem alterar a taxa na qual o valor das propriedades muda do ponto inicial ao ponto final de uma transi\u00e7\u00e3o. Voc\u00ea pode aplicar transi\u00e7\u00f5es da seguinte maneira:\n<\/p>\n<pre><code>element\n{\nstyle_property: value;\ntransition_property: value;\n}<\/code><\/pre>\n<p>\n  Aqui o elemento especifica o elemento HTML que voc\u00ea deseja transformar como div, H1, img etc. style_property \u00e9 o estilo CSS aplicado nesse elemento. Vejamos agora algumas <strong>propriedades de transi\u00e7\u00e3o<\/strong> :\n<\/p>\n<ul>\n<li>\n    <strong>propriedade de<\/strong> transi\u00e7\u00e3o: O efeito de transi\u00e7\u00e3o sempre ser\u00e1 aplicado na propriedade CSS de um elemento como sua largura, altura, cor ou forma. O valor desse atributo especifica a propriedade CSS do elemento. O efeito de transi\u00e7\u00e3o ser\u00e1 iniciado sempre que essa propriedade for alterada, por exemplo, ao passar o mouse ou ao clicar.\n  <\/li>\n<li>\n    <strong>fun\u00e7\u00e3o de tempo de transi\u00e7\u00e3o<\/strong>: Esta \u00e9 a fun\u00e7\u00e3o de facilidade a ser aplicada ao elemento. Esta propriedade \u00e9 usada para especificar a curva de velocidade da transi\u00e7\u00e3o, como facilidade de entrada, facilidade de sa\u00edda, linear etc.\n  <\/li>\n<li>\n    <strong>transition-duration<\/strong>: \u00c9 como a propriedade animation-duration. \u00c9 usado para especificar a dura\u00e7\u00e3o do efeito de transi\u00e7\u00e3o em segundos ou milissegundos. Por exemplo, se definirmos para 5 segundos, a transi\u00e7\u00e3o afetar\u00e1 a conclus\u00e3o em 5 segundos. Se n\u00e3o definirmos essa propriedade, n\u00e3o haver\u00e1 transi\u00e7\u00e3o, pois seu valor padr\u00e3o \u00e9 0.\n  <\/li>\n<li>\n    <strong>transition-delay<\/strong>: Com esta propriedade, podemos especificar a dura\u00e7\u00e3o do tempo para atrasar o efeito da transi\u00e7\u00e3o. Por exemplo, se voc\u00ea deseja iniciar o efeito 5 segundos ap\u00f3s o mouse passar, basta definir o atraso de transi\u00e7\u00e3o para 5s.\n  <\/li>\n<li>\n    <strong>transi\u00e7\u00e3o<\/strong>: \u00c9 a propriedade abreviada para definir todas as propriedades de transi\u00e7\u00e3o acima juntas.\n  <\/li>\n<\/ul>\n<p>\n  Por exemplo, o c\u00f3digo a seguir alterar\u00e1 a largura do elemento div ao passar o mouse. Veja a propriedade abreviada de transi\u00e7\u00e3o aplicada aqui.\n<\/p>\n<pre><code>div {\n  width: 50px;\n  height: 50px;\n  background: blue;\n  transition: height 4s;     \/*transition shorthand on height for 4 seconds*\/\n}\ndiv:hover {\n  height: 200px;      \/* increase height on mouse hover *\/\n}<\/code><\/pre>\n<h3>\n  Anima\u00e7\u00f5es vs. Transi\u00e7\u00f5es<br \/>\n<\/h3>\n<h5>\n  Semelhan\u00e7as entre anima\u00e7\u00f5es e transi\u00e7\u00f5es<br \/>\n<\/h5>\n<ul>\n<li>Tanto a transi\u00e7\u00e3o quanto a anima\u00e7\u00e3o s\u00e3o usadas para visualizar mudan\u00e7as nas propriedades de um elemento.\n  <\/li>\n<li>Podemos especificar a dura\u00e7\u00e3o de quanto tempo a transi\u00e7\u00e3o e a anima\u00e7\u00e3o devem ocorrer.\n  <\/li>\n<li>Temos certas fun\u00e7\u00f5es de temporiza\u00e7\u00e3o para alterar a taxa de ir de um valor para outro para transi\u00e7\u00f5es, bem como anima\u00e7\u00f5es.\n  <\/li>\n<\/ul>\n<h5>\n  Diferen\u00e7as entre anima\u00e7\u00f5es e transi\u00e7\u00f5es<br \/>\n<\/h5>\n<ul>\n<li>As transi\u00e7\u00f5es CSS s\u00e3o <strong>reativas<\/strong>. Eles precisam ser acionados pelos usu\u00e1rios. As anima\u00e7\u00f5es, por outro lado, s\u00e3o executadas sempre que a p\u00e1gina \u00e9 carregada no navegador. Eles n\u00e3o precisam ser acionados.\n  <\/li>\n<li>As transi\u00e7\u00f5es s\u00e3o executadas uma vez e depois param. Ent\u00e3o, temos que acion\u00e1-los repetidamente enquanto as anima\u00e7\u00f5es podem se <strong>repetir<\/strong>. Eles podem come\u00e7ar em sua pr\u00f3pria parada e come\u00e7ar novamente.\n  <\/li>\n<li>O pr\u00f3prio navegador cuida das transi\u00e7\u00f5es. S\u00f3 precisamos especificar o in\u00edcio e o fim da transi\u00e7\u00e3o. Podemos definir o efeito de transi\u00e7\u00e3o, mas n\u00e3o podemos alterar a taxa de mudan\u00e7a de uma transi\u00e7\u00e3o intermedi\u00e1ria. Por exemplo, se uma imagem deslizar ao passar o mouse, veremos apenas o aparecimento ou desaparecimento gradual conforme passamos o mouse sobre ela.\n  <\/li>\n<li>As anima\u00e7\u00f5es, por outro lado, fornecem flexibilidade para alterar as propriedades entre o in\u00edcio e o fim. Isso acontece com a ajuda de quadros-chave. Por exemplo, podemos definir a cor de uma imagem como vermelha nos primeiros 5 segundos, azul nos pr\u00f3ximos 5 segundos, verde nos pr\u00f3ximos 5 segundos e amarela nos \u00faltimos 5 segundos da anima\u00e7\u00e3o. Portanto, temos um controle sobre as anima\u00e7\u00f5es.\n  <\/li>\n<\/ul>\n<h5>\n  Prefixos do fornecedor<br \/>\n<\/h5>\n<p>\n  Todos os recursos do CSS3 n\u00e3o s\u00e3o suportados por todos os navegadores. Portanto, usamos prefixos junto com essas propriedades CSS para navegadores espec\u00edficos, como -webkit- (Safari), -moz- (Firefox) ou -o- (Opera). Isso permite que os marcadores do navegador adicionem um suporte para esse recurso CSS3. Esses prefixos s\u00e3o conhecidos como prefixos do <strong>fornecedor<\/strong> ou <strong>prefixos do navegador CSS<\/strong>. Portanto, precisamos colocar os prefixos do fornecedor junto com as propriedades de anima\u00e7\u00e3o e transi\u00e7\u00e3o. Por exemplo, considere o c\u00f3digo abaixo e veja como os prefixos de fornecedores do Safari foram usados:\n<\/p>\n<pre><code>div {\nwidth: 100px;\nheight: 100px;\nbackground: red;\n \n\/* For Safari 3.1 to 6.0 *\/\n-webkit-transition-property: width;\n-webkit-transition-duration: 2s;\n-webkit-transition-timing-function: linear;\n-webkit-transition-delay: 1s;\n \n\/* Standard syntax *\/\ntransition-property: width;\ntransition-duration: 2s;\ntransition-timing-function: linear;\ntransition-delay: 1s;\n}<\/code><\/pre>\n<p>\n  <strong>Dica!<\/strong> Voc\u00ea pode evitar essa confus\u00e3o usando bibliotecas como <strong>-prefix-free<\/strong>. \u00c9 uma biblioteca JavaScript que adicionar\u00e1 o prefixo do navegador atual a qualquer c\u00f3digo CSS. Confira muitas dessas bibliotecas dispon\u00edveis na web.\n<\/p>\n<h4>\n  Conclus\u00e3o<br \/>\n<\/h4>\n<p>\n  Os desenvolvedores de sites podem aplicar anima\u00e7\u00f5es e transforma\u00e7\u00f5es para atrair usu\u00e1rios para seus sites. Voc\u00ea pode us\u00e1-los para aprimorar formul\u00e1rios, notifica\u00e7\u00f5es, gr\u00e1ficos de fundo, imagens, gr\u00e1ficos, rabiscos, bot\u00f5es de chamada para a\u00e7\u00e3o e outros. Basta usar sua imagina\u00e7\u00e3o e voc\u00ea encontrar\u00e1 uma maneira de surpreender seus usu\u00e1rios. Lembre-se de que mesmo uma pequena altera\u00e7\u00e3o em seu site pode torn\u00e1-lo muito melhor e aumentar seu valor. Ent\u00e3o, voc\u00ea j\u00e1 usou anima\u00e7\u00f5es em seu site? Compartilhe suas ideias sobre o uso de anima\u00e7\u00f5es e transi\u00e7\u00f5es.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Fonte de grava\u00e7\u00e3o: <a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2017\/10\/09\/css-animations-transitions\/\">instantshift.com<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Os designs de sites est\u00e3o em constante evolu\u00e7\u00e3o. Desde design responsivo, tipografia bonita, esquemas de codifica\u00e7\u00e3o de cores perfeitos, ilustra\u00e7\u00f5es, os criadores do site est\u00e3o apresentando novas ideias e designs todos os dias. Atualmente, os usu\u00e1rios t\u00eam grandes expectativas em rela\u00e7\u00e3o \u00e0s interfaces de usu\u00e1rio devido ao conte\u00fado de alta qualidade dispon\u00edvel na Internet. \u00c0 medida que as interfaces do site est\u00e3o evoluindo, a tecnologia por tr\u00e1s delas tamb\u00e9m est\u00e1 evoluindo. Um dos principais componentes respons\u00e1veis \u200b\u200bpor aprimorar a interface do site \u00e9 o CSS. CSS ou Cascading Style Sheets s\u00e3o respons\u00e1veis \u200b\u200bpor tornar os sites muito interativos, definindo seu estilo, layout e designs. O mais recente padr\u00e3o para CSS, ou seja, o CSS3 introduziu o conceito de \u2026<\/p>\n","protected":false},"author":1,"featured_media":191873,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[72,124,59],"tags":[],"class_list":["post-260940","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css-9","category-ferramentas-web","category-web-e-wordpress-2"],"_links":{"self":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/260940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=260940"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/260940\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/191873"}],"wp:attachment":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=260940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=260940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=260940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}