Font-awesome: Problema de renderização: icon-spin fa-spin shake / wobble (Chrome Firefox)

Criado em 13 jan. 2013  ·  147Comentários  ·  Fonte: FortAwesome/Font-Awesome

✋ leia https://github.com/FortAwesome/Font-Awesome/issues/671#issuecomment -338336059 👈

Ao usar data-loading-text, por exemplo:

data-loading-text = " Fazendo login ..."

E então, quando o botão é clicado e a propriedade "carregando" é configurada, o ícone irá oscilar e balançar enquanto gira.

Embora, se você incluir o ícone giratório no botão normalmente, por exemplo:

Ele gira bem.

Só encontrei esse bug no Firefox (atualmente versão 18), funciona perfeitamente no Chrome.

editar por tagliala
Problema relacionado ao Firefox: # 3451

bug cantfix

Comentários muito úteis

Fazer .fa-spin { -webkit-filter: blur(0); } como este tweet sugere consertou para mim.

Todos 147 comentários

Freaking Firefox. Foi tão chato neste projeto quanto o IE. Você está usando 3.0.1? Existem novas classes de spin específicas do Mozilla para ajudar neste problema. Se ainda estiver acontecendo, me avise e eu reabrirei.

Posso confirmar que estou usando o 3.0.1, até baixei novamente, verifiquei duas vezes e o problema persiste.

Em meu comentário anterior, parece que meus exemplos foram eliminados. Será um prazer enviar a você o modelo mako onde esse problema ocorre.

Tenho uma vibração / oscilação ao usar .icon-spin no Chromium (24.0.1312.56) e Chrome no Linux, Firefox (18.0.2) parece bom. Testado em 13d5dd373cbf3f2bddd8ac2ee8df3a1966a62d09

Estou recebendo uma vibração / oscilação no firefox 18.0.2, mas não no Chrome ou IE em certas circunstâncias. Não fui capaz de identificar a causa exata, entretanto. (usando font-awesome v3.0.2)

Estou ficando oscilante em todos os navegadores no Windows 7, mas é uma coisa linda no OSX.

@davegandy ping

Estou recebendo uma oscilação na versão do Chrome 26.0.1410.65 (versão bastante recente). Algum trabalho nisso?

ping! Eu também estou tendo o problema. Não vejo por que o problema foi encerrado, pois ele ainda persiste.

você pode fornecer um violino explicando o problema?

O mesmo problema aqui, alguma solução?

Confirmado para a versão mais recente do Chrome (28.0.1500.71). Quanto menor o ícone, mais exagerado é o movimento. Esse problema afeta a classe icon-spin em qualquer lugar que for chamada.

Tentei a rotação 3D sem sucesso. Girar o próprio icon-circle é um problema.

No Windows 7, estou tendo o problema no Firefox 22.0, Chrome 28.0.1500.72. No IE 8-10, a oscilação quase não é visível, mas olhando de perto para o caso em que tenho observado o problema, acho que ainda há uma ligeira oscilação. Farei o possível para definir um violino para o problema, mas há contexto suficiente para que isso leve algum tempo.

Não é meu jsfiddle, mas aqui está um com o problema: http://jsfiddle.net/Rnt9N/2/
Parece ótimo no Mac, mas instável no Firefox no Windows 7.

não é tão ruim para mim (firefox 22 / w7 x64).

Eu tenho o mesmo problema ao usar o node-webkit v0.7.5.
Acabou usando spin.js

reabrindo este, pois também é culpa do FontAwesome

Fazer .fa-spin { -webkit-filter: blur(0); } como este tweet sugere consertou para mim.

@paldepind obrigado por compartilhar esta solução

Você pode fornecer um violino mostrando o spin atual e o spin proposto lado a lado?

Você pode bifurcar este violino: http://jsfiddle.net/tagliala/HgYqA/

Não estou vendo diferenças na oscilação com o Chrome no Windows 7. Só estou percebendo o ícone girando "mais devagar", como na taxa de meio fps

@tagliala de nada!

Aqui está um violino mostrando dois spinners, um com e outro sem a correção: http://jsfiddle.net/paldepind/XLdQX/

Eu testei com Chrome 30 e Firefox 24 no Linux. No Firefox tudo é bom, mas no Chrome o spinner sem a correção é ligeiramente instável. Não estou vendo nenhuma diferença na velocidade de rotação em nenhum dos navegadores.

O Chrome 32 no Windows 7 não exibe o ícone de jeito nenhum ...

image

No GNU / Linux, com o Chromium 30 a correção está funcionando. Não é o mesmo para o Firefox 26, porque a propriedade de filtro ainda não é compatível. https://developer.mozilla.org/en-US/docs/Web/CSS/filter

Para Firefox 26 no Windows 8, os dois ainda são instáveis ​​para mim. No Chrome 31 no Windows 8, ambos parecem bem.
Em 12 de dezembro de 2013, às 14h20, Felipe Peñailillo [email protected] escreveu:

No GNU / Linux, com o Chromium 30 a correção está funcionando. Não é o mesmo para o Firefox 26, porque a propriedade de filtro ainda não é compatível. https://developer.mozilla.org/en-US/docs/Web/CSS/filter

-
Responda a este e-mail diretamente ou visualize-o no GitHub.

Infelizmente, ele não aparece no Windows e é péssimo no OSX :(

http://jsfiddle.net/tagliala/XLdQX/2/

O ícone giratório não é suavizado e continua oscilando

screen shot 2013-12-13 at 10 46 39

Eu esperava que fosse uma solução alternativa viável, mas não é

@tagliala Isso é lamentável. Eu só tentei consertar minha máquina com Linux com ótimos resultados.

@paldepind oh eu sei, eu me lembro que na minha máquina ubuntu a coisa de girar é realmente uma droga

Você pode tentar as transformações de subpixel: http://jsfiddle.net/tagliala/96ULe/3/

Oi! Eu atualizei para o Chrome 31 hoje e agora a oscilação desapareceu. Então, talvez esse problema desapareça sozinho.

@tagliala não tenho certeza do que devo ver. Tudo parece que deveria, eu acho. Mas, novamente, é no Chrome 31 onde não estou mais vendo o problema de oscilação.

@tagliala O violino de transformações de subpixel ainda mostra oscilação no Chrome 31 e Firefox 26 no Kubuntu.

No entanto, concordo que isso é causado pela renderização de subpixel.

Aqui está um novo violino que mostra uma letra de rotação O ("oh") com uma borda circular vermelha em torno dela.

http://jsfiddle.net/bBaVN/208/

Esse exemplo realmente exacerba o efeito de oscilação, porque a borda vermelha gira suavemente, mas o O oscila.

-webkit-filter: blur(0); corrige o problema para mim. Não consigo encontrar nenhuma outra diretiva que o conserte, incluindo --webkit-font-smoothing.

Eu também tentei desabilitar o anti-aliasing de fonte do KDE (Configurações do Sistema -> Aparência do Aplicativo -> Fontes -> Usar anti-aliasing = Desabilitado), e _isso também corrige o problema_.

infelizmente -webkit-filter: blur(0); não é uma solução porque quebra janelas

@tagliala não tem certeza de qual versão do Windows não está funcionando para você. Testei a solução proposta no Chrome e no IE 11. Parece que não funciona com o Firefox.

@silentworks quebra Win7 x64 - chrome 32

http://jsfiddle.net/tagliala/XLdQX/2/

Além disso, quando funciona, é um anti-alisamento muito pobre.

Acho que o principal problema é que os ícones dentro das fontes não estão perfeitamente centralizados: http://jsfiddle.net/XLdQX/5/

Como você pode ver na imagem abaixo, existem 3 pixels vazios abaixo e 2 acima: isso causará a oscilação.

image

Se você conseguir definir a largura de forma que o ícone fique centralizado, o ícone não oscilará: http://jsfiddle.net/XLdQX/6/

IMHO este recurso giratório deve ser removido, ele causa mais problemas do que benefícios

NÃO CORRIGE porque dá muito trabalho: -1:
mas sim, era bacana ... mas não necessário. Refazer todas as fontes para fazer alguns ícones girarem dá muito trabalho e vai contra a maré.

@conrado não há rótulo "wontfix" aqui

ainda é um wontfix. talvez alguns dos grifos apropriados para spin possam ser retrabalhados

ainda é um wontfix.

Não, não é. Está devidamente aberto e rotulado como bug

image

Não tenho certeza do status desse problema, mesmo depois de ler os comentários, mas como ele ainda está marcado como aberto: Chromium 31 e Firefox Aurora 28 (2014-1-13) no Xubuntu ainda apresentam problemas.

@ ahamilton9 dê uma olhada aqui: https://github.com/FortAwesome/Font-Awesome/issues/2709#issuecomment -32045585

Ok, acho que é um bug do navegador em todas as fontes.
Existem três exemplos: http://jsfiddle.net/3T8Kz/

Primeiro: fonte Font-Awesome centralizada, com o bug.
Segundo: Outro exemplo, mas com uma fonte normal
Terceiro: Sem fontes, apenas um div, com a mesma animação e sem o bug.

O mesmo bug para mim Firefox 31, Linux.
Se isso for causado pelo tamanho dos glifos - é o suficiente para corrigir apenas os glifos destinados a girar, não todos eles.

: +1: +1 isso deve ser considerado para a próxima versão principal, onde presumivelmente todos os glifos serão revisitados.

Vendo esse problema até no site oficial: http://i.gyazo.com/3ba2d0afad90c2e7fe6d2c0bb34e661d.mp4

(Última versão do Firefox)

Adoraria ver isso corrigido: +1:

solicitações pull e investigações profundas sobre este assunto são muito bem-vindas

parece ser um bug do Chrome

@davegandy alguma atualização?

O mesmo no Chrome 37.0.2062.124 no Mac OS X, Safari no iOS 7.0.4

+1

Consegui tratar (não direi resolver) este problema de atualização em um projeto local usando
-webkit-transform-origin: 49% 48,5%;
origem-transformada -moz: 49% 48,5%;
origem da transformação -ms: 49% 48,5%;
origem -o-transformada: 49% 48,5%;
origem da transformação: 49% 48,5%;

Estou usando "fa-circle-o-notch" como símbolo de carregamento e uso esses valores para transformar a origem de modo que não oscile

.fa-circle-o-notch.fa-spin {
-webkit-transform-origin: 50% 48,9%;
origem-transformada -moz: 50% 48,9%;
origem da transformação -ms: 50% 48,9%;
origem -o-transformada: 50% 48,9%;
origem da transformação: 50% 48,9%;
}

@magnyld Acabei de tentar isso, mas continua a vacilar após as alterações do DOM.

Você não pode confiar no uso da transformação de origens. Isso pode quebrar se o ícone for maior ou menor. Como eu disse antes, esse não é um problema incrível de fonte, porque se você tentar girar um div com o estilo de um círculo perfeito, o resultado é o mesmo. Aposto que é um bug do motor do webkit.

Não, isso também está presente no firefox https://bugzilla.mozilla.org/show_bug.cgi?id=930079

Wobbling no Firefox 33, OSX.

O mesmo problema aqui ( rotação oscilante ) :(

solicitações de pull com uma análise profunda desse problema, uma solução alternativa e uma explicação adequada das vantagens e desvantagens serão muito bem-vindas.

O problema parece vir do próprio ícone. Se você pegar a versão giratória Icomoon, ele não balança de forma alguma. Funciona bem no Chrome 39, Windows e IE11, Windows. Não sei para os outros navegadores.

http://jsfiddle.net/cxxzh0uf/

@skoub

A abordagem do icomoon de manter todos os ícones do mesmo tamanho parece melhor para este propósito, mas não é suficiente.

http://jsfiddle.net/tagliala/cxxzh0uf/2/

image

Se eu inspecionar o pseudoelemento :before , noto que fontawesome é "estranho"

image

image

Tentei definir a mesma largura e altura, mas as coisas não estão melhorando.

Acho que isso está relacionado à própria fonte e não há nada que possamos fazer via CSS.

Dave deve dar uma olhada na fonte e inspecionar as fontes geradas pelo Icomoon para tentar entender qual é a melhor maneira de corrigir esse problema.

Não podemos aceitar solicitações pull com edições do arquivo .otf, mas agradeceremos a ajuda nesse assunto. Se alguém aqui conseguir dar uma olhada na fonte e identificar o problema é muito bem-vindo

Desculpe pelo meu inglês, também é tarde aqui :)

@tagliala obrigado por vincular o problema fa-clock-o aqui também, é o mesmo problema que o resto está mencionando.
Notei que fa-cog tem o mesmo problema, mas não é tão perceptível nas mesmas circunstâncias que fa-clock ou alguns dos outros mencionados acima. Continuarei acompanhando este tópico e relatarei se encontrar alguma solução alternativa, mas estou bastante convencido de que são as pequenas imperfeições nos próprios glifos que estão aparecendo apenas uma vez em rotação, caso contrário, são muito pequenos para serem notados a olho nu

Eu encontrei o mesmo problema, existe uma solução confirmada para isso?

@TsuiJie não, não tem

Tive um problema semelhante com os ícones de rotação trêmulos / oscilantes no IE10 e 11.

Meu problema era que no IE 10/11 as barras de rolagem estavam aparecendo e se escondendo (pulsando) enquanto o botão giratório estava visível.

o que descobri foi que, ao definir a altura e a largura da marca do ícone para um tamanho definido (o mesmo tamanho do ícone em si), o pulsar parou.

Espero que ajude alguém.
Felicidades

Ok, descobri que o problema está na conversão do Font Squirrel para formatos de webfont. Parece que está alterando algumas das métricas. Meu plano:

  • teste com uma nova versão do Font Squirrel
  • se isso não funcionar, lance minha própria solução de conversão

Ok, depois de uma investigação considerável, fiz algumas correções:

  • O fa-spinner foi atualizado para ter um melhor efeito visual ao girar.
  • Conversão de webfont feita em casa. Font Squirrel estava definitivamente bagunçando as coisas.
  • Ajustou algumas métricas de fonte que aparentemente não têm efeito no mac, mas são muito usadas pelo Windows.
  • Adicionados exemplos animados à página de teste visual (http://fontawesome.io/test/).

Os resultados

  • Retina Mac: perfeito no Chrome, Safari e Firefox
  • Mac não retina: muito melhor no Chrome, Safari e Firefox
  • Windows 7: o IE11 parece impecável, o Chrome 39 ainda tem problemas, mas não acho que seja pior do que era

Uma Advertência

  • Em alguns tamanhos de fonte, há um pouco de oscilação em todos os navegadores (Icomoon tem o mesmo problema). Basicamente, se você mantê-lo em múltiplos e meio múltiplos da resolução otimizada (por exemplo, 14px, 21px, 28px, 35px), a oscilação vai embora.

Como os resultados são muito melhores do que antes, considerarei isso aceitável para o 4.3 e manterei o problema aberto para o 5.0.

Mais uma atualização. Eu descobri qual opção selecionada não estava funcionando bem para a conversão do Font Squirrel. Então eu coloquei esses arquivos de volta. Deixando aberto.

@davegandy , não vejo nenhuma melhora da minha parte com o Firefox e o Chrome no Windows. Não tentei o IE11. Você pode ver claramente a oscilação se usar etapas na animação.

Eu entendo que você não pode fazer muito no branch 4.x, mas há alguma solução sólida para o branch 5.x?

.fa-spin2 {
    animation: fa-spin 1s infinite steps(8);
    -webkit-animation: fa-spin 1s infinite steps(8);
    -moz-animation: fa-spin 1s infinite steps(8);
    -o-animation: fa-spin 1s infinite steps(8);
}

Para qualquer pessoa que chegou até aqui e está procurando alguma solução de problemas:

Não use fa-spin e fa-fw juntos.

Este acabou sendo meu problema (e minha solução).

@skoub

IE11 é quase perfeito, IMHO o melhor no Windows.

O ícone giratório é novo e deve ser melhor do que antes.

Dê uma olhada na parte inferior desta página pesada com todos os navegadores: http://fontawesome.io/test/

Chrome e firefox são muito ruins em tamanhos pequenos: decepcionado:

com o IE11, com fa-pulse, há uma pequena falha. É como se o botão giratório estivesse se movendo 1px para cima e descesse na próxima etapa da animação.

Está funcionando para mim no IE 11 e no Chrome 40.0.2214.115 m, mas está oscilando no Firefox 35.0.1.

Ainda perceptível no Firefox 36 para Linux.

O vídeo é gravado a 50 FPS.

Font-awesome issue #671 firefox linux

Adicionar scaleZ(1.001) corrige o problema do Firefox 36 no Linux.

Não tenho certeza se meu problema era o mesmo de todos, parecia ser mais parecido com o problema # 4017, mas ele foi fechado e redirecionado aqui, então irei postar minha solução aqui.

Parece que você simplesmente adiciona o seguinte à classe .fa-spin.

.fa-spin {
    text-align:center;
}

Pareceu consertar a oscilação para mim.

Nem evitar o fa-fixed @qJake nem o align: center @JakeCooper corrigem para mim:
filter

(Sem fa-spin, não há jitter).

@isaksky, você poderia fornecer um violino mostrando esse problema? eu tenho uma ideia

Chrome 40.0.2214.115, Windows 7. Não é possível reproduzir esse problema no codepen fornecido.

Qual navegador está fornecendo essa saída?

Não estou no meu computador de trabalho agora, mas acredito que seja o Chrome normal mais recente no Windows 8. Normalmente não consigo reproduzi-lo aqui neste mac no Chrome, mas se eu aumentar o zoom para 110% ou 125% para exemplo, ele aparece. (Também há um problema em que meus botões são empilhados verticalmente, mas não é esse o problema que quero dizer (acho que posso consertar isso usando ems).). O jitter acontece para você se você mexer com o zoom?

Acabei de fazer isso acontecer com zoom normal (100%) neste mac também. Parece relacionado a mexer com o zoom e / ou alternar entre as guias do navegador. Aliás, o problema também acontece com $('#spin-pls').toggleClass("fa-spin") , (em vez de alternar 'ocultar' nele quando já estiver girando) o que pode deixar um pouco mais claro onde está o problema.

Vou verificar amanhã com meu mac

Eu tenho uma solução alternativa aqui para girar a engrenagem. Agradável e suave quando você passa o mouse.

http://codepen.io/jesseangelo/pen/KwrqdM?editors=010

Fiz uma animação de quadro-chave que gira apenas 30 graus ( rotateFa abaixo). Então eu chamo isso assim de animation: rotateFa .1s infinite;

<strong i="11">@keyframes</strong> rotateFa {
    from { transform: rotate(0deg); }
    to { transform: rotate(30deg); }
}

E o oposto para reverter

<strong i="15">@keyframes</strong> unRotateFa {
  from { transform: rotate(30deg); }
  to { transform: rotate(0deg); }
}

O problema ainda existe.

Ele ainda existe no caso do modo de aceleração de hardware desabilitado. Firefox 36.0.4.

Não marque com +1 nem confirme se o problema ainda existe, porque o problema está aberto e não sabemos como corrigi-lo.

Dê uma olhada aqui: https://github.com/FortAwesome/Font-Awesome/issues/671#issuecomment -65381998

Talvez seja uma boa ideia colocar um alerta na página de exemplos ? O problema é grande o suficiente para que eu tenha muito cuidado com os ícones animados, mas de acordo com https://github.com/FortAwesome/Font-Awesome/issues/671#issuecomment -71056820, você não notaria em um retina mac - mesmo se você testou em todos os principais navegadores.

@Vusys eu concordo. Você pode enviar um PR contra o ramo mestre ou me dizer o que escrever e eu o farei

@tagliala feito com pull request # 6686 que adiciona o seguinte aviso abaixo dos exemplos:

Alguns navegadores em algumas plataformas têm problemas com ícones animados, resultando em um efeito de oscilação instável. Consulte o problema nº 671 para obter exemplos e possíveis soluções alternativas.

Obrigado @Vusys !

Vejo uma oscilação muito pior do que apenas +/- 1 pixel. Há alguma interação estranha entre a transformação de rotação e outras transformações CSS, de modo que às vezes o centro de rotação está fora do ícone de rotação.

Ainda não descobri qual regra CSS está causando esse problema em meu site, mas parece um caso de ordem de transformação incorreta. A ordem deve ser: transladar o centro do ícone para (0,0), girar pelo ângulo atual e transladar (0,0) para a posição da tela na qual o ícone central deve ser exibido (ou o contrário). Em algum lugar lá, o CSS está lançando outra tradução na mistura.

_Update: _ Eu descobri qual era o problema no meu caso, então postarei a resposta aqui caso mais alguém possa se beneficiar disso: Eu tinha uma regra CSS que estava mudando a largura do elemento 'i' que o spinner foi armazenado em (o elemento Bootstrap usado para ícones FA). Isso dá resultados imprevisíveis, dependendo do contexto do ícone (por exemplo, dependendo se o texto foi ou não centralizado).

Eu não descobri qual regra CSS

Tenho certeza de que não é uma regra de CSS e o problema não está relacionado ao FA em si

Dê uma olhada aqui: http://jsfiddle.net/tagliala/g0ngLhyr/

@tagliala , se não estiver relacionado a uma regra de css ou FA, como você explica que Icomoon não tem o efeito wobble?

demonstração: http://jsfiddle.net/cxxzh0uf/

outro exemplo é o do google: http://www.getmdl.io/components/index.html#loading -section / spinner

@skoub seu violino atualizado para 4.3.0: http://jsfiddle.net/tagliala/cxxzh0uf/9/

Dê uma olhada aqui: http://jsfiddle.net/tagliala/g0ngLhyr/

Observe que este violino não tem webfonts e ainda mostra a oscilação

A implementação de @skoub google não é baseada em webfonts e IMHO que é a maneira adequada de lidar com esse recurso.

Eu gostaria de compartilhar minha experiência aqui.

Ícones únicos:
Eu só tenho um problema de oscilação com ícones empilhados. Ícones únicos giram ou pulsam bem

Ícones empilhados:
Aparentemente, no meu site, o código abaixo não oscila em um título em que a fonte é um pouco maior, mas oscila quando a fonte é menor. O fa-pulse oscila em ambos os casos

isenção de responsabilidade: eu sou muito novo em todas essas coisas, mas como meu site produz resultados instáveis ​​e bons, pensei que todos vocês gostariam de saber.

@isaksky Essa oscilação / desfoque com spinner tem a ver com aceleração de hardware

Os itens que estão sendo mostrados / ocultos com a classe .hide podem ter o navegador indicado com a indicação de que o conteúdo será oculto

#spin-pls {
  will-change: contents;
}

No entanto, os navegadores baseados no Gecko, como o Firefox, estão, pelo menos para mim, ainda tendo problemas para pular texto na caixa de diálogo.

.job-order-dialog {
  will-change: transform;
}

funciona, mas afeta negativamente o Chrome ao supercompensar e borrar o texto o tempo todo. Eu vim com duas soluções possíveis, a primeira apenas direcionada ao Firefox, a última é uma aceleração diferente, filter: blur(0); observada neste bug, mas é um pouco hacky na minha opinião - semelhante a transform: translateZ(0); - -e pode levar a resultados negativos no futuro.

@-moz-document url-prefix() {
  .job-order-dialog {
    will-change: transform;
  }
}
.job-order-dialog {
  filter: blur(0);
}

Isso corrige o problema, obrigado @toastal ! Isso poderia ser trabalhado em uma solução geral @tagliala ?

@toastal , você se importa em fornecer um jsfiddle mostrando sua solução e comparando-o com o giro básico da fonte?

Estou testando todos os exemplos que vocês postaram e não consigo reproduzir no Firefox Aurora:

20150722004007
Mozilla / 5.0 (X11; Linux x86_64; rv: 41.0) Gecko / 20100101 Firefox / 41.0

Estou no debian Jessie, e por causa de alguns problemas de driver da nvidia, acho que não tenho aceleração de hardware.

O processo GLXtest falhou (saiu com status 1): extensão GLX ausente
Procesador WebGL Bloqueado para sua tarjeta gráfica debido problemas no resueltos del driver.

Além disso, não pode reproduzir aqui:
http://shb.github.io/bootstrap-loading-screen/#icon : spinner

está resolvido ou é porque não tenho aceleração de hardware habilitada?

Eu encontrei outra solução potencial para esse problema (executando o firefox 39) graças a esta postagem: http://www.useragentman.com/blog/2014/05/04/fixing-typography-inside-of-2-d-css -transforms /

Eu editei o JSFiddle acima com a correção: http://jsfiddle.net/5z9om45L/

basta colocar "perspectiva (1px)" na propriedade de transformação. Isso "joga renderização do objeto para a GPU", de acordo com o post no link acima. Eu não testei pessoalmente isso extensivamente, então não sei o que especificamente isso faz ou se causa algum outro problema, mas até agora parece bom. Este tem sido um dos meus maiores problemas com o Firefox, então pensei em mencioná-lo aqui.

Eu editei o JSFiddle acima com a correção: http://jsfiddle.net/5z9om45L/

Isso corrige o problema perfeitamente para mim.

Aqui está um Fiddle atualizado que mostra a oscilação na bússola. O segundo botão de localização mostra uma rotação simples com oscilação pronunciada.

http://jsfiddle.net/Lpur9ek1/1/

@spiderr aparentemente, fa-lg aumenta o efeito de oscilação porque lida com a altura da linha e o tamanho da fonte. Tente usar um tamanho de fonte de 14px ou múltiplos

@tagliala obrigado, ótima dica! fa-2x definitivamente melhor. Existem também alguns artefatos estranhos (pixels sujos) ao redor do círculo. Aqui está um violino em fa-5X que os mostra mais claramente no grande botão azul. Este é um detalhe minucioso, mas se alguém limpar a bússola, isso seria ótimo. Minha esperança é que, quando a bússola girar, você não possa dizer que o círculo estava se movendo, apenas a agulha interna da bússola. Se eu sentar a 2 metros da tela com o fa-5x, fica ótimo :-)

http://jsfiddle.net/mhqLvw79/1/

Não tenho certeza se este é o tópico certo, mas ..
No firefox, meu "fa fa-cog fa-spin" para de girar. Eu o uso em uma chamada ajax com modal. Funciona bem no Safari e no Chrome, mas o firefox pára por algum motivo. Alguma ideia??

app / javascripts / my_file.js
$ (document) .ready (function () {
$ ('# search_btn'). on ('click', function () {
$ ('# resultados'). empty ();
var meuFormulário = $ ('# user_search');
$ ("# spinner_modal"). modal ("mostrar");
$ .ajax ({
url: myForm.attr ('ação'),
tipo: "POST",
data: myForm.serialize (),
dataType: 'text',
sucesso: função (html) {
$ ("# spinner_modal"). modal ("ocultar");
$ ('# resultados'). append (html);
},
erro: função (xhr, satus, err) {
$ ("# spinner_modal"). modal ("ocultar");
},
tempo limite: 60000
});
retorna falso;
});

_my_partial.html.erb

@jonathanparrish por favor comece uma nova edição. Não se preocupe em me mencionar, vou dar uma olhada :)

Como resolvi meu problema com a rotação fora do centro da fonte do ícone:
Tive de resolver vários problemas:
1. tamanho do ícone: deve ter o tamanho px inteiro (por exemplo, tamanho da fonte: pequeno; torna meu ícone 17,5 px para que o centro não seja o centro absoluto para a transformação)
2. definição de exibição: bloco no nível do ícone torna-o centralizado corretamente no meio do div pai
3. definir o tamanho exato do quadrado do div pai (no meu caso, o botão) e o preenchimento fixo tornou-o centralizado corretamente
4. Adicionar qualquer sombra de texto mudará o tamanho do ícone interno para que fique fora do centro. O truque é mudar o estilo de foco para a mesma sombra com a mesma cor do fundo no meu caso

Então aqui está o código:

button.close {
    padding: 10px;
    opacity: 0.8;
    text-shadow: 1px 1px 1px #999; 
    width: 40px;
    height: 40px;
}
button.close i{
    font-size: 20px;
    max-width: 20px;
    max-height: 20px;
    display: block;
}
button.close:hover {
    text-shadow: 1px 1px 1px #fff; 
}
/* rotation CSS*/
<strong i="12">@keyframes</strong> anim-rotate {
    0% {
        -moz-transform:rotate(0);
        -webkit-transform:rotate(0);
        transform:rotate(0);
    }
    100% {
        -moz-transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}
<strong i="13">@keyframes</strong> anim-rotate-next {
    0% {
        -moz-transform:rotate(0);
        -webkit-transform:rotate(0);
        transform:rotate(0);
    }
    100% {
        -moz-transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}
.rotate{
    animation: anim-rotate-next 1s normal linear;
}
.rotate.down{
    animation: anim-rotate 1s normal linear;
}

HTML:

<div id="NewsTitle" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
        <div>
            <button type="button" class="close visible-sm-block hidden-xs"><i class="fa fa-expand"></i></button>
            <button type="button" class="close"><i class="fa fa-chevron-up"></i></button>
            <button type="button" class="close"><i class="fa fa-refresh rotate"></i></button>
            <span>Vesti</span>
        </div>
    </div>

e, finalmente, JQuery para mudar de classe de rotação

$("#NewsTitle").on('click', 'i.fa-refresh', function () {
    // rotiraj ikonu
    $(this).toggleClass("down");
}); 

https://jsfiddle.net/4ya23yjL/8/

@goranbujic obrigado por compartilhar isso

Você poderia fazer um violino mostrando sua abordagem (você poderia usar este como base http://jsfiddle.net/tagliala/4ya23yjL/) e formatar corretamente sua postagem ?

Obrigado!

acabei de fazer ... desculpe, primeiro no gitHub :)

Data: Qui, 1 de outubro de 2015 07:53:45 -0700
De: notificaçõ[email protected]
Para: [email protected]
CC: [email protected]
Assunto: Re: [Font-Awesome] Problema de renderização: icon-spin fa-spin shake / wobble (Chrome firefox) (# 671)

@goranbujic obrigado por compartilhar isso

Você poderia fazer um violino mostrando sua abordagem (você poderia usar este como base http://jsfiddle.net/tagliala/4ya23yjL/) e formatar corretamente sua postagem?

Obrigado!

-
Responda a este e-mail diretamente ou visualize-o no GitHub.

Amo todos vocês. Obrigado pela correção de transform-origin: 49% 48.5%; em .fa-refresh.fa-spin <3

Mas, falando sério, adoraria obter essas coisas simetricamente se elas forem animadas!

Se alguém aqui atrás de iônicos como eu, isso resolverá transform-origin: 52% 50%;

confirmando o problema em

Google Chrome:  51.0.2662.0 (Officiell version) canary (64 bitar)
Version:    4d223c72fe4e76c7404bffb662f742b947f97107-refs/heads/master@{#378134}
OS  Mac OS X 

também conhecido como o mais recente canário de cromo, isso só se aplica a fa-pulse tough (testado principalmente com fa fa-spinner fa-pulse )

Anteriormente na v4.5.0, tive que adicionar o seguinte estilo CSS para corrigir o problema de oscilação no botão giratório:

.fa.fa-spinner.fa-pulse {
  transform-origin: 50% 48.5%;
}

No entanto, no 4.6.1 esse css realmente o tornou pior. 4.6.1 parece ter resolvido o problema de oscilação do spinner.

sobre este:

http://jsfiddle.net/tagliala/g0ngLhyr/

a questão é se essa coisa está ou não no centro, especialmente em relação a essa coisa usar qualquer fonte disponível no sistema.
pode ser interessante ter uma imagem ou um SVG que tenha um círculo perfeito no centro e deixá-lo girar.

atualizar:
http://jsfiddle.net/xntwxwra/
ele não parece oscilar aqui ([email protected]), apenas nenhum anti-aliasing provavelmente o torna um pouco engraçado.

Isto pode ou não ajudar. Tive uma oscilação no Chrome 51.0.2704.103 m, e percebi que o css que veio com meu modelo estava definido letter-spacing: 0.25em; . Para a classe fa-spin, eu redefino para letter-spacing: normal; e voila, sem oscilação!

Não tenho certeza se estamos falando sobre a mesma coisa, mas percebi que <i class="fa fa-pulse fa-spinner fa-fw"</i> parece nervoso quando usado dentro do elemento small . Não sou um herói css, então apenas "resolvi" envolvendo-o em span (e removendo assim o small )

Estou usando a fonte incrível 4.6.3 de maxcdn.bootstrap.com com bootstrap 3.3.7 de netdna.bootstrapcnd.com.

posso reproduzir com segurança a oscilação ao alterar o tamanho da Neste violino em um navegador cromado, o botão giratório esquerdo está balançando enquanto o botão giratório direito está consertado.

A quantidade de "correções" que as pessoas estão usando me preocupa, se houver muitas "correções" diferentes, as pessoas postam exatamente quantas foram testadas para funcionar em todos os navegadores.

Se o glifo não estiver posicionado simetricamente, de forma que a lacuna entre a parte superior e a inferior seja diferente, haverá uma "oscilação" conforme descrito.

Já foi sugerido que refazer os glifos dá muito trabalho, então por que não usar apenas uma imagem (como um SVG) que seria mais adequada para um ícone giratório? Você não precisa usar o Font Awesome para resolver todos os seus problemas e às vezes não faz sentido fazer isso.

O efeito de oscilação apareceu após a atualização do Firefox 48 para o Firefox 49 no Ubuntu Xenial 16.04.
Foi corrigido pela adição de "altura da linha: normal", conforme sugerido neste tópico.

@Matthew-Bonner Portanto, se não for adequado para este propósito, deve ser removido da documentação!

@mehrandvd alguns dos ícones funcionam perfeitamente bem, daí porque há documentação para cobrir isso, talvez seja melhor atualizar a documentação para deixar claro que alguns ícones não funcionam tão bem quanto outros e que existem problemas conhecidos.

@ Matthew-Bonner esta é uma boa ideia e está parcialmente documentada.

Alguns navegadores em algumas plataformas têm problemas com ícones animados, resultando em um efeito de oscilação instável. Consulte o problema nº 671 para obter exemplos e possíveis soluções alternativas.

se você tiver uma sugestão para melhorar esta frase, sinta-se à vontade para enviar um PR contra o ramo mestre

Eu o farei @tagliala , e acho que como o Font Awesome 5 está sendo desenvolvido, esse bug deve ser resolvido fechando-o e adicionando o rótulo "wontfix", pois não há realmente nada que possa ser feito.

Descobri que o efeito de oscilação depende do tamanho da fonte.
Por exemplo, mudei o tamanho da fonte de 1.5em para 1.4em e 21px para 20px e voila, não oscila mais.

Resolvi meu problema substituindo o ícone de círculo por uma versão SVG dele (com correção da proporção não quadrada).

Aqui está um violino para isso: https://jsfiddle.net/vwqzv1mr/5/

Tenho o mesmo problema (2017) com TODOS os navegadores (IE, FF, Chrome, Safari). Não sabia que era um grande problema manter um spinner centralizado.

Estou começando uma campanha, distribuindo os principais pedidos de ícones FA gratuitamente e de código aberto. Você pode incorporá-los de várias maneiras: gerando outra fonte de ícone, svg set, ou (minha preferência) compilando todos os ícones de FA e de terceiros em um único arquivo.

Diferentes ícones de rotação estão aqui .

Os anteriores eram moderador , discórdia , moedas , Google Play , fechar magro , homem caminhando , camiseta , Xbox , Nintendo Wii U , Nintendo , PlayStation , Facebook messenger e ícones de linha .

Por favor, deixe-me saber se você quer que eu continue com essas solicitações de ícones, ou compile algum arquivo de atualização, ou como devemos fazer isso?

Não em terra se isso ajudar, mas consegui deixar o spinner estático mexendo um pouco no CSS. Eu testei as fontes Glyphicons e FontAwesome, só para ver que uma parecia melhor. Tentei girar o ícone e girar um contêiner com o ícone. Existem 5 parâmetros principais para fazer este trabalho (tamanho da fonte, altura, largura, altura da linha e recuo do texto).

Você pode encontrar um exemplo aqui:
https://jsfiddle.net/Dhanck/syb9qubj/2/

ansioso para a versão 5 !!

@ Dhanck7 : Obrigado por compartilhar isso! Que orgia CSS é necessária para fazer isso funcionar! No meio eu encontrei uma animação simples "fora" da Font Awesome que funciona fora da caixa!

Ainda não consigo acreditar que eles conseguiram mais de 1 milhão para Font Awesome 5 do Kickstarter, mas não conseguem fazer uma animação simples funcionar corretamente. suspiro

bem como você já pode ver que essas animações são bastante complicadas, isso não funciona tão facilmente.

o problema é que estamos lidando com personagens, também conhecidos como texto, e não imagens, o que torna isso muito mais complicado.

E que tal desta forma:
https://jsfiddle.net/Dhanck/9t6y85jx/2/

Apenas ajustando 3 parâmetros e usando o comportamento de animação padrão do FontAwesome ...

Você também pode usar JavaScript para remover a propriedade de intervalo de linha, eu acho.

Tudo bem, todo mundo.

Com a versão 5 no horizonte, acho que corrigimos isso com o novo framework SVG. Acabei de fazer uma bateria de testes usando o novo SVG "cog" e o giro está perfeitamente centrado nas dezenas de navegadores que testei.

Se você apoiou o Kickstarter ou pré-encomendou e tem acesso à versão alfa mais recente (disponível para download em sua conta), pode me ajudar a testar isso?

Eu adoraria resolver esse problema com o Font Awesome 5!

Que bom ouvir! Não apoiei o Font Awesome 5, mas estou disposto a comprá-lo após o lançamento. Todos os ícones no Font Awesome 5 têm a mesma altura e largura? Às vezes bagunçava minha GUI apenas por diferentes alturas / larguras.

@Taygair os ícones têm a mesma altura, mas a largura varia.

Eu sei ... Ao usar o fa-rotate a altura vira largura e vice-versa. Existem alguns ícones que têm - visualmente - a mesma altura e largura (simétricos), mas não têm. Seria bom se eles tivessem a mesma altura / largura (em FA5).

Vejo que provavelmente será corrigido no próximo lançamento do FA⁵, mas apenas no caso de smb precisar de uma correção rápida para .fa-circle-o-notch , aqui está uma pequena substituição suja de css

.loader {
  width: 1em;
  height: 1em;
  border: .1em solid black;
  border-right-color: transparent;
  border-radius: 50%;
  animation: fa-spin 2s infinite linear;
}

Até agora, isso parece estar funcionando bem com a estrutura SVG. Fechando, a menos que alguém descubra que isso é falso.

funcionando bem com o framework SVG

Se os webfonts ainda forem afetados e o FA5 free também for afetado, devo rotular isso como wontfix e aconselhar a considerar uma solução SVG para ícones giratórios

@tagliala concordou. Receio que as fontes da web sempre tenham problemas em torno disso, então SVG é a melhor solução se isso for um problema. Teremos FA5 Free pronto assim que pudermos.

bem, o framework SVG não é ruim, mas tem uma coisa irritante: Javascript.

há muitas razões pelas quais ppl usa coisas como noscript para se proteger de coisas que js podem fazer e quando coisas não funcionam com JS é feio imo.

Quer dizer, temos coisas como @ font-face e animações CSS e outros enfeites para que JS não seja mais necessário para tarefas como essas e isso é uma coisa boa.

Desculpe, 😢

rotulado como wontfix, mas na verdade é um "não é possível consertar"

TL; DR
Certifique-se de que está usando um tamanho de fonte múltiplo de 16px (14px para FA4) para o seu spinner. Isso ajuda .
Se você não estiver satisfeito e precisar de um girador de pixel perfeito, considere usar um girador SVG animado.

@ My1 , você não precisa de JS para animar SVG, você pode usar CSS.

boa chamada @tagliala ... "não é possível consertar" é mais precisa. Eu _tentei_ várias vezes: D

bem, mas a estrutura SVG só carregará em um navegador habilitado para JS.

Já tentei.

se você tem o FA Pro, pegue o servidor demo, desabilite js (fácil de fazer no chrome) e acesse

http: // localhost : 3344 / docs / svg-framework.html

você verá que nenhum ícone será carregado.

você provavelmente pode fazer os SVG sozinho, mas minha resposta foi precisamente para aqueles que disseram SVG Framework.

também quem tem esse problema? Eu tentei o link de @tagliala no Chrome e Opera do Firefox e não notei muita oscilação (e eu certamente devo ser capaz de notar algo estranho nos pixels quando eu chego perto de 5cm da minha tela FHD de 42 polegadas, onde você pode ver facilmente os pixels )

também foa FA5 se tornaria 16px então porque o tamanho da base muda?

como isso é um grande problema

Usar um valor de recuo de texto negativo resolveu o problema para mim

Parece que filter: blur(0) faz o trabalho e é muito bem suportado https://caniuse.com/#feat = css-filters

Uma combinação da solução de line-height para cada tamanho obtém resultados muito bons para mim. Ainda uma oscilação de sub-pixel muito leve, mas basicamente imperceptível.

.fa-spin {
  text-indent: -0.000001em;
  line-height: 0.6em;
}
.fa-spin.fa-lg {
  line-height: 0.7em;
}
.fa-spin.fa-2x {
  line-height: 0.8em;
}
.fa-spin.fa-3x,
.fa-spin.fa-4x,
.fa-spin.fa-5x {
  line-height: 1em;
}
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

petermolnar picture petermolnar  ·  3Comentários

rufengch picture rufengch  ·  3Comentários

yarcowang picture yarcowang  ·  3Comentários

douglasdeodato picture douglasdeodato  ·  3Comentários

sezeresen picture sezeresen  ·  3Comentários
bleepcoder.com usa informações licenciadas publicamente pela GitHub para fornecer aos desenvolvedores em todo o mundo soluções para seus problemas. Não somos afiliados à GitHub, Inc. nem a nenhum desenvolvedor que utilize GitHub para seus projetos. Nós não hospedamos nenhum dos vídeos ou imagens em nossos servidores. Todos os direitos pertencem a seus respectivos proprietários.
Fonte para esta página: Fonte

Linguagens de programação populares
Projetos populares do GitHub
Mais projetos GitHub

© 2024 bleepcoder.com - Contact
Made with in the Dominican Republic.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.