Hello tout le monde
j'ai un problème avec un code que j'avais fais, il fonctionne bien mais pas indéfiniment, à un moment donné le déplacement ne se fait plus car il ne redécale plus comme il faut , voici le code :
Code :
- <script type="text/javascript">
- var IMAGE_NUMBER = 13;
- var IMAGE_WIDTH = 160;
- var IMAGE_HEIGHT = 58;
- var DECALAGE_DROITE = 960; //width of content partner_reel
- var CAROUSEL_SPEED = 10000;
- var position = IMAGE_NUMBER;
- $(document).ready( function() {
- // Positionnement des images
- for ( var i = 1 ; i <= IMAGE_NUMBER ; i++ ) {
- $( '.partners_image_' + i ).css('left', ( ( i - 1 ) * IMAGE_WIDTH) + 'px');
- $( '.partners_image_' + i ).css('bottom', ( ( i - 1 ) * IMAGE_HEIGHT ) + 'px');
- }
- // Deplacement
- deplacement();
- });
- // Fonction de deplacement du carousel
- function deplacement() {
- $( '.partners_image_' + position ).css('left', ( ( IMAGE_NUMBER - 1 ) * IMAGE_WIDTH) + 'px');
- for ( var i = 1 ; i <= IMAGE_NUMBER ; i++ ) {
- $( '.partners_image_' + i ).animate( { left : '-=' + ( IMAGE_WIDTH ) }, CAROUSEL_SPEED, 'linear' );
- }
- position++;
- position %= IMAGE_NUMBER;
- setTimeout('deplacement()', CAROUSEL_SPEED + 25);
- }
- </script>
|
Je pense le problème vient du fait que le déplacement se fait en float, comme forcé pour qu'il déplace à l'aide d'entier uniquement ?
Arrivé à la position left -160px l'élément se repositionne en fin de liste et la boucle devrait être perpetuelle, malheureusement à un moment donné (aléatoire) parfois il continue à se positionner négativement et donc la boucle se "casse"
je suspecte que le problème vient du fait de l'utilisation de nombre flottante (arrivé à -159.99999 px il pète un cable par exemple), savez-vous comment forcer pour qu'il prenne des entiers ?
Merci
---------------
Mon topic Tiësto