2010-11-05 12 views
0

J'essaie de faire une sorte de curseur. J'utilise juste le concept de base. J'ai un masque, un container div et des objets individuels. Comme:JQuery .animate n'a pas pu calculer la valeur de gauche après qu'elle dépasse 10000

<div id="mask"> ----> position:relative 
    <div id="container"> -----> position: absolute 
     <div class="item"></div> ----> each floated left. 
     <div class="item"></div> 
     <div class="item"></div> 
      ..... 
     <div class="item"></div> 
     <div class="item"></div> 
     <div class="item"></div> 
    </div> 
</div> 

Tout fonctionne bien, jusqu'à ce que la valeur de gauche dépasse 10000 (ou alors je ne pouvais pas le calculer). Quand je clique sur le bouton suivant, il va au début et revient à l'élément suivant. Il montre l'élément correct, bien qu'il revienne au lieu de simplement glisser un élément.

goToNextItem: function() { 
      showcaseItemWrapper.animate({left: leftPosition -= showcaseItemWidth },1000); 
     } 

leftPosition est initialisé à 0.

Quel pourrait être le problème? S'il te plait peux-tu aider?

Merci d'avance.

#### COMMENT AVEZ-VOUS APPLIQUÉ LA SOLUTION DE DAVIDE? #### Je me suis fixé de conteneur de marge gauche à -9999px et il est laissé à 9999px, et cela a fonctionné! **

meilleurs Mfg, Ugur Korfali

+0

FYI! La largeur de mon conteneur mesure 18684px. D'abord je pensais, il est lié à la valeur entière maximale, mais 18684 ne la dépasse pas. –

+0

Une note supplémentaire. Je sais que c'est jQuery .animate lié, parce que si j'utilise .css à la place, il fonctionne parfaitement. –

Répondre

1

On dirait qu'il est un bug jQuery :

http://bugs.jquery.com/ticket/7287

Je ressentais la même chose ici. Si votre largeur div est < 20000, vous pouvez utiliser une solution de contournement; modifier la marge jusqu'à 10000 et modifier la position (gauche ou supérieure, selon l'orientation de votre div). Ce n'est pas très élégant, mais ça fait l'affaire. Davide

+0

Merci Davide! En fait vous avez raison. Ce n'est pas une manière élégante de le résoudre mais cela fonctionne vraiment. Merci encore. –

+1

jQuery 1.5.0 corrige ce bug. – Matt