2013-07-24 3 views
0

J'ai modifié le script de la galerie de http://usejquery.com/blog/create-unique-gallery-using-z-index-and-jquery et cela fonctionne très bien dans tous les navigateurs sauf IE10. Voyez-le ici: http://174.122.126.251/~arblockt/index.html. Les photos sont censées "mélanger" l'image du haut vers le bas de la pile mais dans IE10 la photo du dessus reste sur le dessus.problème d'index z avec la galerie jquery dans ie10

Voici le script modifié:

  $(document).ready(function() { 
       var z = 0; 
       var inAnimation = false; 

       $('#pictures img').each(function() { 
       z++; 
       $(this).css('z-index', z); 
       }); 

       function swapFirstLast() { 
       if(inAnimation) return false; //if already swapping pictures just return 
       else inAnimation = true; //set the flag that we process a image 

       $('#pictures img').each(function() { //process each image 
        if($(this).css('z-index') == z) { //if its the image we need to process 
        $(this).animate({ 'left' : '-' + $(this).width() + 'px' }, 'slow', function() { //animate the img above/under the gallery (assuming all pictures are equal height) 
         $(this).css('z-index', 1) //set new z-index 
         .animate({ 'left' : '0' }, 'slow', function() { //animate the image back to its original position 
          inAnimation = false; //reset the flag 
         }); 
        }); 
        } else { //not the image we need to process, only in/de-crease z-index 
        $(this).animate({ 'left' : '0' }, 'slow', function() { //make sure to wait swapping the z-index when image is above/under the gallery 
         $(this).css('z-index', parseInt($(this).css('z-index')) + 1); //in/de-crease the z-index by one 
        }); 
        } 
       }); 
       return false; //don't follow the clicked link 
       } 
       window.setInterval(swapFirstLast, 3000); 
      }); 

Quelqu'un peut-il voir pourquoi cela fonctionne dans tous les navigateurs (même les anciennes versions de IE) mais pas IE10?

Merci d'avance pour votre aide.

MISE À JOUR: Il ne fonctionne toujours pas dans IE10 mais j'ai remarqué que si vous le laissez continuer à fonctionner pendant un moment, l'image du haut finira par se déplacer vers l'arrière, mais la nouvelle image fera la même chose et rester au top. Très étrange.

MISE À JOUR # 2: Je viens de redimensionner la fenêtre IE10 pendant son exécution et elle a immédiatement commencé à fonctionner correctement. Une idée de ce qui pourrait causer ce comportement très étrange? Merci!

+0

Je ne sais pas pourquoi spécifiquement, mais je peux vous dire '' fonctionnera probablement. Malheureusement, c'est un peu hackish et pas une réponse directe, donc pourquoi c'est un commentaire – Ohgodwhy

+0

Ouais, je sais. J'étais désespéré! Essayer tout ce que je pouvais penser. lol je l'ai depuis enlevé. –

+0

J'ai compris le problème, mais je ne sais pas pourquoi cela arrive. J'ai enlevé tout le CSS excepté ce qui est requis par le script et l'ai ensuite ajouté 1 style à la fois. Il s'est avéré que le style de pied de page incluait la position: relative. Quand j'ai enlevé ceci, tout a fonctionné parfaitement. Ce qui est étrange à ce sujet est que le div de pied de page est à l'extérieur et en dessous de l'élément conteneur de la galerie, donc je ne sais pas pourquoi cela aurait un effet sur la galerie, et seulement dans IE10. J'ai résolu le problème, mais je suis toujours curieux de savoir pourquoi cela se produit. Quelqu'un at-il déjà entendu parler de cette situation et peut-il nous éclairer? –

Répondre

0

J'ai eu le même problème. J'ai essayé le redimensionnement et cela a fonctionné pour moi aussi. Ensuite j'ai décidé de changer l'ordre de changement des index z. J'ai affiché les éléments en fonction de leur index z du plus haut au plus bas et cela a semblé fonctionner pour moi. Bonne chance!