Alguém conhece uma solução alternativa para fazer GIFs animados continuarem a ser animados depois de clicar em um link ou enviar um formulário na página que você está no IE? Isso funciona bem em outros navegadores.
Obrigado.
Alguém conhece uma solução alternativa para fazer GIFs animados continuarem a ser animados depois de clicar em um link ou enviar um formulário na página que você está no IE? Isso funciona bem em outros navegadores.
Obrigado.
Respostas:
A solução aceita não funcionou para mim.
Depois de mais algumas pesquisas, descobri essa solução alternativa e ela realmente funciona.
Aqui está a essência disso:
e em seu html:
Portanto, quando o formulário é enviado, a
<img/>
tag é inserida e, por algum motivo, não é afetada pelos problemas de animação, por exemplo.Testado no Firefox, ie6, ie7 e ie8.
fonte
code
<div id = "img_content"> <img id = 'aj_loader' src = 'assets / 2631.gif' style = "display: none;" /> </div> E então:code
$ ("# img_content"). html ($ ("# img_content"). html ());velha pergunta, mas postando para outros googlers:
Spin.js FUNCIONA neste caso de uso: http://fgnass.github.com/spin.js/
fonte
O IE assume que o clique em um link anuncia uma nova navegação onde o conteúdo da página atual será substituído. Como parte do processo de preparação para isso, ele interrompe o código que anima os GIFs. Duvido que haja algo que você possa fazer sobre isso (a menos que você não esteja realmente navegando; nesse caso, use return false no evento onclick).
fonte
Aqui está um jsFiddle que funciona muito bem no envio de formulário com method = "post". O botão giratório é adicionado no evento de envio de formulário.
Veja o código jsFiddle aqui
Teste-o em seu navegador IE aqui
fonte
Eu me deparei com este post, e embora já tenha sido respondido, senti que deveria postar algumas informações que me ajudassem com esse problema específico do IE 10, e que possam ajudar outras pessoas que chegam a este post com um problema semelhante.
Fiquei perplexo ao ver como os gifs animados simplesmente não eram exibidos no IE 10 e então encontrei esta joia.
Tools→ Internet Options→ Advanced→ MultiMedia→Play animations in webpages
espero que isto ajude.
fonte
beforeunload
ouunload
evento.Eu encontrei esse problema ao tentar mostrar um gif de carregamento durante o processamento de um envio de formulário. Ele tinha uma camada adicional de diversão, pois o mesmo onsubmit precisava executar um validador para garantir que o formulário estava correto. Como todo mundo (em todas as postagens do formulário IE / gif na Internet), não consegui fazer o botão giratório de carregamento "girar" no IE (e, no meu caso, validar / enviar o formulário). Enquanto procurava conselhos em http://www.west-wind.com , encontrei uma postagem de ev13wt que sugeria que o problema era "... que o IE não renderiza a imagem como animada porque ela estava invisível quando foi renderizada. " Isso fazia sentido. Sua solução:
Deixe em branco onde o gif iria e use o JavaScript para definir a fonte na função onsubmit - document.getElementById ('loadingGif'). Src = "caminho para o arquivo gif".
Veja como eu implementei:
Isso funcionou bem para mim em todos os navegadores!
fonte
Aqui está o que eu fiz. Tudo que você precisa fazer é dividir seu GIF para dizer 10 imagens (neste caso, comecei com
01.gif
e terminei com10.gif
) e especificar o diretório onde você as mantém.HTML:
JavaScript:
Este método funciona com IE7, IE8 e IE9 (embora você possa usar o IE9
spin.js
). NOTA: Não testei isso no IE6, pois não tenho uma máquina rodando um navegador dos anos 60, embora o método seja tão simples que provavelmente funciona até no IE6 e anteriores.fonte
Relacionado a isso, eu tive que encontrar uma solução onde os gifs animados eram usados como uma imagem de fundo para garantir que o estilo fosse mantido na folha de estilo. Uma correção semelhante funcionou para mim também ... meu script era mais ou menos assim (estou usando jQuery para tornar mais fácil obter o estilo de fundo calculado - como fazer isso sem jQuery é um tópico para outra postagem):
[EDITAR] Com mais alguns testes, acabei de perceber que isso não funciona com imagens de fundo no IE8. Tenho tentado tudo que posso pensar para fazer o IE8 renderizar uma animação GIF enquanto carrega uma página, mas não parece possível neste momento.
fonte
$(spinner).css('background-image')
), mas em vez de configurá-lo da mesma forma, você está usando o modo Javascript puro (spinner.style.backgroundImage
). Seu código não está funcionando para mim em nenhum navegador. Se eu usar diretamente seu código, estou recebendo umcannot set backgroundImage property of undefined
erro. Se eu alterar seu código para definir CSS usando jQuery, o código será executado sem erros, mas a imagem não será redefinida e o elemento div / spinner permanecerá vazio. Eu não sei porquebackground-image
propriedades emunload
oubeforeunload
eventos. Veja esta pergunta ou este jsFiddle para obter detalhes.Com base na resposta de @danfolkes, isso funcionou para mim no IE 8 e ASP.NET MVC3.
Em nosso _Layout.cshtml
<<< conteúdo aqui >>> ...
E em nossos links de navegação:
ou
fonte
Encontrei esta solução em http://timexwebdev.blogspot.com/2009/11/html-postback-freezes-animated-gifs.html e FUNCIONA! Basta recarregar a imagem antes de definir como visível. Chame a seguinte função Javascript a partir do clique de seu botão:
fonte
Sei que essa é uma questão antiga e que agora os participantes originais encontraram uma solução que funciona para eles, mas me deparei com esse problema e descobri que as tags VML não são vítimas desse bug do IE. Os GIFs animados ainda se movem durante o descarregamento da página quando colocados no navegador IE usando tags VML.
Observe que detectei o VML primeiro, antes de tomar a decisão de usar tags VML, portanto, isso está funcionando no FireFox e em outros navegadores que usam o comportamento normal de GIF animado.
Veja como eu resolvi isso.
Naturalmente, isso depende do jQuery, jQueryUI e requer um GIF animado de algum tipo ("/images/loading_gray.gif").
fonte
Jquery:
fonte
Só tive um problema semelhante. Isso funcionou perfeitamente para mim.
Outra ideia era usar .load () do jQuery; para carregar e anexar a imagem.
Funciona no IE 7+
fonte
Muito, muito tarde para responder a esta, mas acabei de descobrir que o uso de uma imagem de plano de fundo codificada como URI base64 no CSS, em vez de mantida como uma imagem separada, continua a ser animada no IE8.
fonte
Uma maneira muito fácil é usar o plugin jQuery e SimpleModal . Então, quando preciso mostrar meu gif "carregando" no envio, eu faço:
fonte
Eu tive esse mesmo problema, comum também a outros borwsers como o Firefox. Finalmente descobri que criar dinamicamente um elemento com gif animado dentro de form submit não animado, então desenvolvi o seguinte workaorund.
1) Em
document.ready()
, cada FORMULÁRIO encontrado na página, recebe umaposition:relative
propriedade e a seguir a cada um está anexado um invisívelDIV.bg-overlay
.2) Depois disso, supondo que cada valor de envio do meu site seja identificado pela
btn-primary
classe css, novamente emdocument.ready()
, procuro esses botões, dirijo para o FORM pai de cada um e no formulário envio, disparo ashowOverlayOnFormExecution(this,true);
função, passando o botão clicado e um booleano que alterna a visibilidadeDIV.bg-overlay
.CSS para
DIV.bg-overlay
é o seguinte:3) Em qualquer envio de formulário, a função a seguir é disparada para mostrar uma sobreposição de fundo semi-branco sobre ele (que nega a capacidade de interagir novamente com o formulário) e um gif animado dentro dele (que mostra visualmente uma ação de carregamento).
Mostrar gif animado no envio do formulário, em vez de anexá-lo neste evento, resolve o problema de "congelamento de animação gif" de vários navegadores (como disse, encontrei esse problema no IE e no Firefox, não no Chrome)
fonte