débordement css: faites défiler. commencer par le bas

Je construis un widget de discussion en ligne qui est réduit (réduit et fixé au bas de la page) par défaut, puis agrandi lorsque vous cliquez dessus.

Il a une hauteur fixe et overflow-y: scroll . Je veux que la barre de défilement commence en bas et défile vers le haut, mais cela pose problème.

Si je ne widget.toggle('blind') jamais le widget, ce que je fais avec widget.toggle('blind') (JQuery), je peux simplement faire défiler avec du javascript lors du chargement de la page: avec .scrollTop() , cependant, je souhaite que le widget soit initialement réduit. L’utilisation de .scrollTop() sur le widget réduit n’a aucun effet! En outre, chaque fois que je réduis / développe le widget, il défile jusqu’en haut.

Y a-t-il une bibliothèque ou avez-vous des astuces pour résoudre ce problème?

Vous pouvez le faire comme ça:

  1. Déclarez votre hauteur chatView (widget) minimisée ( 5vh dans mon exemple) par défaut
  2. Lorsque l’utilisateur veut ouvrir le chatView (cliquez dans mon exemple), vous ajoutez class ( ouvrez dans mon exemple) et augmentez sa hauteur ( 90vh dans mon exemple). Avec propriété de transition – vous obtenez une animation recherchée
  3. Utilisez la méthode jQuery mentionnée .scrollTop avec la hauteur de conteneur requirejse ( #chatView> div dans mon exemple), ce qui l’assure de faire défiler vers le bas.
 $(function(){ $("#chatView").click(function(){ $(this).toggleClass("open").scrollTop($("#chatView>div").height()); }); }); 
  *{ margin:0; } footer{ height:10vh; position: absolute; bottom: 0; } #chatView{ width: 20vw; background:red; position:absolute; bottom:0; height:4vh; transition: height 1s; overflow-y:scroll; } #chatView.open{ height: 90vh; } #chatView>div{ background:green; height: 95vh; } #chatView>figure{ height: 4vh; }