Comment puis-je faire défiler automatiquement une page vers le haut si .slideDown va du bas du navigateur?

StackOverflow https://stackoverflow.com/questions/4621286

  •  30-09-2019
  •  | 
  •  

Question

I possède une table qui indique les informations supplémentaires pour chaque ligne par l'intermédiaire d'un slideDown jQuery lorsque la ligne est mouseover'd. Lorsque la souris est retiré l'information est enlevé avec un slideUp.

Cela fonctionne bien, mais quand je mouseOver le dernier élément de la page, il glisse vers le bas en dessous du bas de la fenêtre du navigateur. Si l'utilisateur fait défiler vers le bas avec un mousewheel ou similaire, ils peuvent voir les informations, mais si elles se déplacent le pointeur de la souris pour faire glisser la barre de défilement des informations disparaît.

Y at-il un moyen simple jQuery d'assurer que la page défile vers le bas pour afficher les informations en même temps que le slideDown est exécuté ou que je vais devoir handroll une solution à cela?

Était-ce utile?

La solution

Vous pouvez essayer d'obtenir la profondeur est la dernière ligne va en calculant sa position verticale (en haut) et sa taille. Si cette valeur passerait le défilement en cours, puis vous faites défiler à cette valeur.

// Non testé

var verticalLimit = $("#lastRow").offset().top + $("#lastRow").height() ;
var currentVerticalScroll = $(window).scrollTop();
if (verticalLimit > currentVerticalScroll){
    $("body").animate({ scrollTop: verticalLimit }, 500);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top