8
votes

faire de l'iScroll au travail lors du chargement d'une div de manière dynamique

Quelqu'un peut-il expliquer, avec un exemple si possible, comment charger du contenu dynamique à l'intérieur d'une divollication et d'affecter une nouvelle hauteur?

Je peux le faire fonctionner mais je ne peux pas contrôler la hauteur du défilement du nouveau contenu.

Je suis nouveau à tout cela et je n'ai aucune idée de commencer.

Voici ce que je travaille sur:

http://homepage.mac.com/jjco/test/index7.html

Lorsque la page est chargée, vous voyez la barre de défilement où il n'y a pas de contenu ... En cliquant sur Imprimer / Damm (affiche la hauteur que j'ai initialement définie pour ce contenu) En cliquant sur Imprimer / FCBARCELONA (maintient la même hauteur et la même hauteur du défilement que vous avez utilisé auparavant) comme vous le voyez, cela ne fonctionne pas comme cela devrait. De toute évidence, je ne veux pas que le rouleau soit là quand ce n'est pas nécessaire.

Toute aide serait grandement appréciée.


0 commentaires

5 Réponses :


3
votes

Essayez ceci, lorsque vous insérez vos nouvelles données dans iScroll, procédez comme suit ces étapes

//myScroll is a global variable you initialize iScroll on
myScroll.destroy();
myScroll = null;
loaded();//this is a functions where you have have your iScroll initializer 


1 commentaires

* Signifiait être détruire ()



14
votes

Il est préférable d'utiliser la méthode de rafraîchissement () dans iScroll, qui recalculera la hauteur.

myScroll.refresh();


0 commentaires

3
votes

J'ai eu un problème similaire, et juste Actualiser () Code> n'a pas aidé, alors ne vous aidait pas à détruire et à recréer iScroll. Dans mon cas, je chargeais beaucoup d'éléments dans Iscroll Div. Ce qui a résolu le problème est Settimeout () code>. Comme Maîtriser la méthode de rafraîchissement () a ajouté l'ajout même 0ms code> à un SettimeOut () code> résoudrait beaucoup de problèmes. Dans mon cas, c'était 500ms code>. =

Voici l'échantillon de code: P>

    var myScroll;

    function createIScroll(){
    myScroll = new iScroll('wrapper');
    }

    function iScrollRefresh(){
      setTimeout(function(){
         myScroll.refresh(); 
      }, 500);
    }
$ajax(){ 
//receiving data
}
function someFunction(){
  //dynamic content is created
  iScrollRefresh();
}


1 commentaires

Même chose pour moi, rafraîchir seuls n'a pas fonctionné, mais Settimeout a résolu la question, merci.



0
votes

Pour regarder les modifications de hauteur:

setInterval(function () {
    var newScrollerHeight = $scroller.innerHeight();

    if (newScrollerHeight !== prevScrollerHeight) {
         prevScrollerHeight = newScrollerHeight;
         myScroll.refresh();
    }
}, 500);


0 commentaires

-1
votes

Jetez un coup d'oeil à Iscroll4
Dans iscroll.js, je vois l'option expérimentale: checkdomchandes: false, // expérimental
Vous pouvez l'activer et l'utiliser.


0 commentaires