2009-04-06 7 views
1

J'ai un ensemble de fonctions Javascript que j'utilise avec une table d'éléments d'entrée pour permettre la navigation. Des choses comme le suivi de l'élément actuellement ciblé, et débordant de la fin d'une rangée au début de la suivante. J'ai support de barre de défilement avec une première colonne fixe en créant une table qui est seulement une colonne large comme ma colonne fixe et ayant une barre de défilement pour l'autre table.Forcer le positionnement du défilement avec Javascript scrollLeft

Cependant, j'ai remarqué récemment, que le comportement par défaut de la barre de défilement est un peu déficiente. Lorsque je navigue vers la dernière colonne, Firefox laisse cette colonne partiellement masquée par la barre de défilement au lieu de défiler assez loin pour la voir. De même, une fois que je fais défiler pour voir l'autre partie de la dernière colonne, quand je passe à la ligne suivante et que les jeux de code nav se concentrent sur une cellule de la première colonne (la table gelée), Firefox ne change pas la barre de défilement de sorte que je peux voir toute la première colonne. Pour cette raison, j'ai cherché comment modifier le positionnement de la barre de défilement en utilisant javascript. Ma table n'utilise pas une barre de défilement verticale, seulement une barre horizontale. Donc je suis tombé sur scrollLeft.

document.getElementById("meastable").scrollLeft = 1; // reset scroll to leftmost 

Malheureusement cela ne semble fonctionner que de temps en temps. Lorsque j'ai activé Firebug et tracé le code de navigation où cette ligne est, il semble fonctionner de temps en temps, mais la plupart du temps, cette ligne va s'exécuter, mais les propriétés de gauche de la table restent inchangées et je ne vois pas de changement visuellement non plus.

Je définis également scrollLeft sur un nombre élevé, de sorte qu'il sera défini au maximum comme décrit dans la documentation, et cela ne fonctionne pas non plus (sauf de temps en temps).

J'utilise le code suivant pour configurer la barre de défilement avec ma table. Selon la documentation de Mozilla, cela semble provenir d'Internet Explorer mais fonctionne maintenant dans Firefox. Est-ce que cela ne fonctionne pas dans Firefox, car le projet interne est uniquement Firefox. Donc, j'essaie de comprendre ce qui ne va pas. Est-ce que scrollLeft est connu pour ne pas fonctionner correctement, ou devrais-je revenir en arrière et voir si j'ai enfoncé quelque chose dans ma définition de la barre de défilement ou quelque chose du genre?

+0

haha ​​... j'ai lu l'id comme "meatstable" – Jason

Répondre

7

La div contenant est l'élément avec débordement. Vous devez définir le scrollLeft de la div, pas la table.

Questions connexes