J'ai une table à l'intérieur d'une div (c'est un débordement, donc le navigateur affiche une barre de défilement). À l'aide de JavaScript, comment déplacer la poignée de la barre de défilement le long de la piste vers une position correspondant à l'emplacement d'une ligne du tableau?
+--------------------------------------+
|100 | |
|101 | |
|102 | |
|103 | |
|104 | |
|105 This is a table that |---|
|106 has overflowed. | - | <-- I want to move this using JavaScript,
|107 |---| so that a specific row # is visible.
|108 | |
|109 | |
|110 | |
|111 | |
+--------------------------------------+
Si vous voulez utiliser la méthode non - jQuery , utilisez la propriété scrollTop
de la table contenante .
Supposons que vous puissiez facilement identifier la ligne que vous voulez faire défiler en utilisant un ID, avec le <div />
contenant. Utilisez le offsetTop
de l'élément que vous voulez faire défiler.
var container = document.getElementById('myContainingDiv');
var rowToScrollTo = document.getElementById('myRow');
container.scrollTop = rowToScrollTo.offsetTop;
Utilisation de JQuery:
'.scroll-table' est le nom de la classe utilisé pour la partie pouvant défiler
1.Aller à la position initiale
$('.scroll-table').scrollTop(0);
2.La ligne inférieure calcule la différence de défilement entre la position supérieure des tableaux et la ligne sur laquelle nous avons défilé.
$('.scroll-table').scrollTop($('#myrowid').position().top-$('.scroll-table').position().top);
Vous pouvez utiliser ceci:
$('a').on('click', function(e){
var t = this.id.substring(1);
e.preventDefault();
var target= $(".section")[t] ;
var offset = $( target ).offset();
$('html, body').stop().animate({
scrollTop: offset.top
}, 1000);
});
Vous pouvez aussi vérifier ceci exemple sur jsfiddle .
Si vous êtes intéressé par jQuery ici, vous pouvez le faire comme suit:
$(".tableClass tbody").scrollTop(0);
Vous pouvez également utiliser la méthode .scrollTop()
jQuery:
Il existe une solution utilisant AngularJs.
$document.scrollTopAnimated(50, 1000).then(function () {});
Le premier paramètre est la position. La seconde est la durée de l'animation.