Quelqu'un connaît-il un moyen de faire en sorte que les GIF animés continuent à être animés après avoir cliqué sur un lien ou soumis un formulaire sur la page sur laquelle vous vous trouvez dans IE? Cela fonctionne bien dans d'autres navigateurs.
Merci.
Réponses:
La solution acceptée n'a pas fonctionné pour moi.
Après quelques recherches supplémentaires, je suis tombé sur cette solution de contournement , et cela fonctionne réellement.
En voici l'essentiel:
et dans votre html:
Ainsi, lorsque le formulaire est soumis, la
<img/>
balise est insérée et, pour une raison quelconque, elle n'est pas affectée par les problèmes d'animation ie.Testé dans Firefox, ie6, ie7 et ie8.
la source
code
<div id = "img_content"> <img id = 'aj_loader' src = 'assets / 2631.gif' style = "display: none;" /> </div> Et puis:code
$ ("# img_content"). html ($ ("# img_content"). html ());vieille question, mais publiant ceci pour les collègues googleurs:
Spin.js FONCTIONNE pour ce cas d'utilisation: http://fgnass.github.com/spin.js/
la source
IE suppose que le clic sur un lien annonce une nouvelle navigation où le contenu actuel de la page sera remplacé. Dans le cadre du processus de vérification, il arrête le code qui anime les GIF. Je doute que vous puissiez faire quoi que ce soit (à moins que vous ne naviguiez pas réellement, auquel cas utilisez return false dans l'événement onclick).
la source
Voici un jsFiddle qui fonctionne très bien sur la soumission de formulaire avec method = "post". Le spinner est ajouté à l'événement de soumission de formulaire.
Voir le code jsFiddle ici
Testez-le dans votre navigateur IE ici
la source
Je suis tombé sur ce message, et bien qu'il ait déjà reçu une réponse, j'ai pensé que je devrais publier des informations qui m'ont aidé à résoudre ce problème spécifique à IE 10, et pourraient aider d'autres personnes à arriver à ce message avec un problème similaire.
J'ai été déconcerté par le fait que les gifs animés ne s'affichaient tout simplement pas dans IE 10, puis j'ai trouvé ce joyau.
Tools→ Internet Options→ Advanced→ MultiMedia→Play animations in webpages
J'espère que cela t'aides.
la source
beforeunload
ouunload
événement.J'ai rencontré ce problème en essayant d'afficher un gif de chargement pendant le traitement d'un formulaire. Il y avait une couche supplémentaire de plaisir en ce que le même onsubmit devait exécuter un validateur pour s'assurer que le formulaire était correct. Comme tout le monde (sur chaque message de formulaire IE / gif sur Internet), je ne pouvais pas faire tourner le spinner de chargement dans IE (et, dans mon cas, valider / soumettre le formulaire). En parcourant les conseils sur http://www.west-wind.com j'ai trouvé un message par ev13wt qui suggérait que le problème était "... qu'IE ne rend pas l'image comme animée car elle était invisible lorsqu'elle était rendue. " Cela avait du sens. Sa solution:
Laissez vide là où le gif irait et utilisez JavaScript pour définir la source dans la fonction onsubmit - document.getElementById ('loadingGif'). Src = "chemin vers le fichier gif".
Voici comment je l'ai implémenté:
Cela a bien fonctionné pour moi dans tous les navigateurs!
la source
Voici ce que j'ai fait. Tout ce que vous avez à faire est de diviser votre GIF pour dire 10 images (dans ce cas, j'ai commencé par
01.gif
et j'ai terminé avec10.gif
) et spécifier le répertoire où vous les gardez.HTML:
JavaScript:
Cette méthode fonctionne avec IE7, IE8 et IE9 (bien que vous puissiez utiliser IE9
spin.js
). REMARQUE: je n'ai pas testé cela dans IE6 car je n'ai pas de machine exécutant un navigateur des années 60, bien que la méthode soit si simple qu'elle fonctionne probablement même dans IE6 et les versions inférieures.la source
En relation avec cela, j'ai dû trouver un correctif où des gifs animés étaient utilisés comme image d'arrière-plan pour garantir que le style était conservé dans la feuille de style. Un correctif similaire a fonctionné pour moi là aussi ... mon script est allé quelque chose comme ça (j'utilise jQuery pour faciliter l'obtention du style d'arrière-plan calculé - comment faire cela sans jQuery est un sujet pour un autre article):
[EDIT] Avec un peu plus de tests, je viens de réaliser que cela ne fonctionne pas avec les images d'arrière-plan dans IE8. J'ai essayé tout ce que je pouvais penser pour que IE8 rende une animation gif tout en chargeant une page, mais cela ne semble pas possible pour le moment.
la source
$(spinner).css('background-image')
), mais au lieu de le définir de la même manière, vous utilisez du Javascript pur (spinner.style.backgroundImage
). Votre code ne fonctionne pour moi dans aucun navigateur. Si j'utilise directement votre code, j'obtiens unecannot set backgroundImage property of undefined
erreur. Si je change votre code pour définir CSS à l'aide de jQuery, le code s'exécute sans aucune erreur, mais l'image n'est pas réinitialisée et l'élément div / spinner reste vide. Je ne sais pas pourquoi?background-image
propriétéunload
oubeforeunload
événements. Voir cette question ou ce jsFiddle pour plus de détails.S'appuyant sur la réponse de @danfolkes, cela a fonctionné pour moi dans IE 8 et ASP.NET MVC3.
Dans notre _Layout.cshtml
<<< contenu ici >>> ...
Et dans nos liens de navigation:
ou
la source
J'ai trouvé cette solution sur http://timexwebdev.blogspot.com/2009/11/html-postback-freezes-animated-gifs.html et ça marche! Rechargez simplement l'image avant de la définir sur visible. Appelez la fonction Javascript suivante à partir du clic de votre bouton:
la source
Je me rends compte que c'est une vieille question et que maintenant les affiches originales ont chacune trouvé une solution qui fonctionne pour elles, mais j'ai rencontré ce problème et j'ai trouvé que les balises VML ne sont pas victimes de ce bogue IE. Les GIF animés se déplacent toujours pendant le déchargement de la page lorsqu'ils sont placés sur le navigateur IE à l'aide de balises VML.
Remarquez que j'ai détecté VML avant de prendre la décision d'utiliser des balises VML, donc cela fonctionne dans FireFox et d'autres navigateurs en utilisant un comportement GIF animé normal.
Voici comment j'ai résolu cela.
Naturellement, cela repose sur jQuery, jQueryUI et nécessite un GIF animé d'un certain type ("/images/loading_gray.gif").
la source
Jquery:
la source
J'ai juste eu un problème similaire. Celles-ci ont parfaitement fonctionné pour moi.
Une autre idée était d'utiliser .load () de jQuery; pour charger puis ajouter l'image.
Fonctionne dans IE 7+
la source
Très, très tard pour répondre à celle-ci, mais je viens de découvrir que l'utilisation d'une image d'arrière-plan encodée en URI base64 dans le CSS, plutôt que conservée en tant qu'image séparée, continue de s'animer dans IE8.
la source
Un moyen très simple consiste à utiliser jQuery et le plugin SimpleModal . Ensuite, lorsque j'ai besoin d'afficher mon gif de «chargement» lors de l'envoi, je fais:
la source
J'ai eu ce même problème, commun également à d'autres borwsers comme Firefox. Enfin, j'ai découvert que créer dynamiquement un élément avec un gif animé à l'intérieur lors de la soumission du formulaire ne s'animait pas, j'ai donc développé le workaorund suivant.
1) À
document.ready()
, chaque FORM trouvé dans la page, reçoit laposition:relative
propriété puis à chacun est attaché un invisibleDIV.bg-overlay
.2) Après cela, en supposant que chaque valeur de soumission de mon site Web est identifiée par la
btn-primary
classe css, encore une foisdocument.ready()
, je cherche ces boutons, je passe au parent FORM de chacun, et à la soumission du formulaire, je déclenche lashowOverlayOnFormExecution(this,true);
fonction, en passant le bouton cliqué et un booléen qui active la visibilité deDIV.bg-overlay
.CSS pour
DIV.bg-overlay
est le suivant:3) À toute soumission de formulaire, la fonction suivante est déclenchée pour afficher une superposition d'arrière-plan semi-blanc partout (qui refuse la possibilité d'interagir à nouveau avec le formulaire) et un gif animé à l'intérieur (qui montre visuellement une action de chargement).
L'affichage du gif animé lors de l'envoi du formulaire, au lieu de l'ajouter à cet événement, résout le problème de «gel de l'animation gif» de divers navigateurs (comme dit, j'ai trouvé ce problème dans IE et Firefox, pas dans Chrome)
la source