Quando se trata de animar com o SVGs, uma grande desligamento pode ser a ideia de ser atolado em bibliotecas de JavaScript. No entanto, isso não precisa ser o caso. CSS pode lidar selecionando caminhos individuais dentro de um SVG para criar efeitos. Apenas sabendo que os fundamentos podem significar que é possível transformar ícones planos e clichê em algo um pouco mais impressionante. Então, talvez seja hora de percorrer os passos fundamentais da otimização e animação do SVG. Quando integrado em desenhos diferentes, não demora muito para perceber que as possibilidades são infinitas.
Para mais inspiração em movimento, dê uma olhada no Guia do Creative Bloq para Exemplos de animação CSS. e como codificá-los.
Economize £ 100 com um bilhete super cedo para Gerar css. , a conferência web de um dia hospedada pelo Creative Bloq, revista Web Designer e Net Magazine. Reserve aqui .
Primeiro, crie um SVG para trabalhar. Para este tutorial, estaremos usando um gráfico simples feito no Illustrator. Ao usar o Illustrator para exportar um SVG, reduza o tamanho da arte para caber no gráfico e clique em "Salvar como". Selecione SVG no menu suspenso 'Salvar como Tipo', então 'Código SVG ...' no diálogo Opções do SVG.
Cortar tags desnecessárias tornará a imagem mais fácil de lidar. Isso pode ser feito manualmente copiando o código para o seu editor favorito e removendo tags e metadados vazios. Alternativamente, um recurso fantástico chamado Svgomg. fará isso automaticamente. Cole o código na área 'Colar Markup' na interface SVGOMG, copie a imagem novamente usando o botão no canto inferior direito.
Abra seu editor de código de escolha e configure um documento HTML em branco. Vamos escrever a animação CSS em um arquivo chamado main.css. , então crie isso também. Para manter as coisas focadas na animação, nós puxamos a versão somente CSS do Bootstrap 4.1.3.
Vamos construir os ossos do nosso layout e fazer um espaço para o nosso SVG. Adicionamos um cabeçalho e duas colunas: uma à esquerda para algum texto, e uma à direita, que manterá o SVG que estaremos animando. Para animar a página, use uma segunda, estática, SVG como pano de fundo na tag do corpo.
Estamos usando nossa animação para fazer a introdução no topo da página mais interessante. Cole o código SVG otimizado na segunda coluna na página. Se estiver usando o Bootstrap, dê ao SVG a classe IMG-FLUID. para se certificar de que escalava em celulares.
Adicionando classes ao SVG permite que o CSS selecione as formas individuais dentro da imagem. Isso significa que você pode animar diferentes formas da imagem em momentos diferentes, criando um efeito mais complexo.
& lt; svg & gt;
& lt; g & gt;
& lt; Rect Class = "Rectbackground" largura = "147.4107"
altura = "68.7917" x = "31.2946" y = "114.1042"
rx = "4.5882" Ry = "3.9565" preencher = "# 2a7fff" / & gt;
& lt; path class = "rectText" d = "..." Efeito vetorial = "sem escala-traço" acordado-largura = ". 470476156" font-size = "12" preencher = "# fff"
preenchimento-regra = "hightodd" stroke = "# fff" stroke-linecap = "redondo" / & gt;
& lt; / g e gt;
& lt; / svg & gt;
Selecionar nossos elementos SVG no CSS é o mesmo que qualquer outro elemento. Usamos nossas classes para selecionar esses elementos dentro do SVG. Ambas as partes do nosso SVG começarão como ocultas quando a página é carregada, então vamos usar o CSS para definir a opacidade do elemento para 0. .
path.recttext {
opacidade: 0;
}
ret.rectbackground {
opacidade: 0;
}
Precisamos declarar o nome e os keyframes para cada animação para que CSS saiba o que queremos fazer quando pedimos para realizar um efeito. eu escolhi TextDraw e rectfade. , como eles descrevem cada animação. rectfade. será uma animação simples de duas etapas. TextDraw terá um passo médio extra.
@KeyFrames textdraw {
0% {}
50% {}
100% {}
}
@keyframes rectfade {
a partir de{}
para{}
}
Nós adicionamos o. rectfade. animação para o RECTBLOGO elemento e dar uma duração de um segundo. A facilitada Bezier cúbico está sendo usado para dar uma sensação mais suave. Nós adicionamos para a frente Portanto, o elemento mantém as propriedades do último quadro-chave quando a animação termina.
ret.rectbackground {
opacidade: 0;
Animação: Rectfade 1S Cubic-Bezier (0,645,
0,045, 0,355, 1) para a frente;
}
Com apenas dois keyframes, tudo o que precisamos fazer para o nosso retângulo é definido um conjunto de atributos de início e fim. Vamos começar com um 1% largura e acabamento em 100% para dar um "expansão para o efeito certo". Nós também podemos definir Opacidade: 1. para o último quadro-chave, então a forma desaparece ao mesmo tempo.
@keyframes rectfade {
a partir de {
Largura: 1%;
}
para {
Largura: 100%;
opacidade: 1;
}
}
Vamos criar um efeito de desenho de linha em nosso texto, então use um preenchimento para desaparecer. Para configurar a animação de texto, damos a nossa TextDraw com uma duração de quatro segundas. O bezier cúbico foi modificado neste passo para dar um ritmo de movimento ligeiramente diferente.
path.recttext {
opacidade: 0;
Animação: TextDraw 4s
cúbico-bezier (0,56, -0,04, .32, .7) para a frente;
}
Nosso texto precisa ser executado assim como o retângulo terminar de se desvanecer. Porque o retângulo tem uma segunda duração, atrase o início da animação de texto naquela época.
path.recttext {
opacidade: 0;
Animação: TextDraw 4s
cúbico-bezier (0,56, -0,04, .32, .7) para a frente;
Atraso de animação: 1s;
}
Para obter nosso efeito de desenho de linha, usaremos o stroke-painarray. e stroke-dashoffset. parâmetros. Seus valores serão diferentes para os meus, dependendo do SVG que você está usando. Para encontrar seu valor, use suas ferramentas de desenvolvedor preferidas e aumente stroke-painarray. a partir de 0. até que toda a forma seja coberta por um derrame.
path.recttext {
opacidade: 0;
Stroke-Dasharray: 735;
Animação: TextDraw 4s
cúbico-bezier (0,56, -0,04, .32, .7) para a frente;
Atraso de animação: 1s;
}
Agora temos o nosso incrível que cobre todo o caminho de texto, vamos compensá-lo pelo seu próprio comprimento para afastá-lo efetivamente. Usando stroke-dashoffset. pelo mesmo valor que o nosso DashArray. deve fazer isso. Vamos definir isso em nosso primeiro keyframe. Também faremos a forma preencher transparente e definir o acidente vascular cerebral para branco, se ainda não for.
0% {
Preencha: RGB (255, 255, 255, 0);
acidente vascular cerebral: #fff;
Stroke-Dashoffset: 800;
opacidade: 1;
}
Nosso quadro médio aparece em 40% através da animação. Nós trazemos o stroke-dashoffset. De volta a zero para que o traço cubra o caminho inteiro. Podemos re-adicionar o preenchimento transparente nesta fase para garantir que o preenchimento apareça apenas quando o desenho estiver concluído.
40% {
Stroke-Dashoffset: 0;
Preencha: RGB (255, 255, 255, 0,0);
}
Para a última parte da animação, preencheremos a forma em branco. Tudo o que precisamos fazer para o último quadro-chave é aumentar o valor alfa da cor de preenchimento. Isso cria o efeito fade-em do preenchimento.
100% {
Preencha: RGB (255, 255, 255, 1);
Stroke-Dashoffset: 0;
opacidade: 1;
}
Este artigo foi originalmente publicado na revista Creative Web Design Web designer . Compre Edição 286. ou se inscrever .
Consulte Mais informação:
(Crédito da imagem: Joseph Foley no Instagram) Baixe as imagens do Instagram - Ba..
(Crédito da imagem: Phil Galloway) Para este tutorial do Adobe Fresco, estarei criando um retrato vibrante e emotivo..
Há alguns anos, o diretor de arte dos jogos Lucid me pediu para ajudá-los a projetar 10 veículos independentes para um jogo de..
Uma ótima maneira de melhorar o experiência de usuário No seu site é adicionar um menu de deslizamento; Ele cria uma maneira atraente para os usuários encont..
Página 1 de 4: A ferramenta mágica de varinha A ferramenta mágica de varinha A rápida seleção e ..
Quando eu troquei pela primeira vez de um fluxo de trabalho de ilustração digital, meu Técnicas de pintura ..
Pintura 'Alla Prima' (isto é, pintando wet-on-wet, em uma sessão) é a técnica ideal para abraçar a natureza das tintas a ól..
Esta semana viu a liberação de alguns novos vídeos no Adobe's Faça agora Playlist, uma coleção de clipes sobre como criar projetos de design com aplicativos de nuvem criativos em um min..