J'ai passé beaucoup de temps à prendre scrollheight correctement, mais toutes les actions ont échoué.Scrollheight pas obtenir la hauteur sur le contenu dynamique rendu thorugh ajax et n'a pas réussi à initier Slimscroll par le bas
Problème: 1- Face à problème pour récupérer scrollHeight sur le contenu dynamique rendu
2- slimscroll ne démarre pas à partir du bas.
charge contenu dynamique j'utiliser en temps opportun si scrollHeight avec slimscroll
3- position de départ Slimscroll de bas affects en raison de scrollHeight.
J'intègre slimscroll avec un conteneur système de discussion, tandis que le contenu récupère de ajax et insère (apppend) dans la zone de discussion. Je prends le scrollheight de ce conteneur. donc je peux lancer défilement (plugin slimscroll) à partir du bas,
mais a trouvé deux problèmes ici
1- slimscroll ne démarre pas à partir du bas sur le contenu dynamique.
2- scrollheight renvoie zéro juste après le rendu du contenu.
$.ajax({ // retrieve data request }).done(function (result) {
$.each(data, function (index, value) { // markup concatenation done })
$(html).insertBefore('.message-center .chat-list .typing-status');
Alors je lance slimscroll code pour faire une action selon scrollHeight
var chatList = $('.message-center .chat-list');
var scrollTo_int = chatList.prop('scrollHeight') + 'px';
$('.chat-list').slimScroll({
scrollTo : scrollTo_int,
height: '400',
start: 'bottom',
alwaysVisible: true
});
Mais scrollHeight me montre zéro, mais si j'attends 2 secondes et mettre ce code dans settimeout même code d'initialisation de slimscroll dans settimeout
// setTimeout(function() {
// chatToBottom();
// }, 2000);
scrollHeight retou rn hauteur correcte et également slimscroll travail parfaitement. Je ne veux pas attendre ces deux secondes.
Pourquoi je suis Impossible d'obtenir scrollHeight même contenu a été rendu,
Si quelqu'un peut me suggérer une bonne façon comme:
1- Une méthode rappel attente jusqu'à ce que scrollHeight> 0 alors la fonction doit être lancée.
2- Je veux empêcher la fonction settimeout, pensais-je Si le contenu augmente, cela peut prendre 1 ou 2 secondes de plus. c'est ma pensée.
J'ai passé beaucoup de temps mais je n'ai pas réussi à résoudre ce problème. Votre suggestion pourrait m'aider.
Merci,