2010-05-11 5 views
1

Ok, j'ai donc créé un petit plugin qui prend un tas d'éléments et crée une sorte de liste interminable. Je vais essayer d'expliquer ...J'ai besoin de quelques conseils sur la façon d'implémenter l'inertie

J'ai une div, et il y a environ 20 étiquettes d'éléments dedans. Lorsque l'utilisateur fait défiler vers le haut, l'élément supérieur se déplace hors de vue et est déplacé vers le bas de la liste. Et vice-versa de sorte que lorsque l'utilisateur fait défiler vers le bas, l'élément du bas est déplacé vers le haut de la liste.

Ceci est spécifiquement pour le contenu Web Safari Mobile (iPad, iPhone)

Ce que je voudrais faire est de mettre en œuvre l'inertie de sorte que le défilement ralentit à un arrêt en réponse à la vitesse ou de ralentir l'utilisateur défile lorsque leur le doigt quitte l'écran. Tout comme l'inertie généralement trouvée dans l'interface utilisateur iPhone/iPad. Le problème est qu'à chaque fois qu'un élément passe en haut ou en bas de la liste, la valeur scollTop du div parent est ajustée pour donner l'impression que tous les éléments restent au même endroit. Ce qui signifie que la valeur scrollTop n'est jamais supérieure à la hauteur totale des éléments supérieurs. Je ne peux donc pas penser à une valeur que je puisse continuer à manipuler pour donner l'illusion de l'inertie.

Je suis perplexe. Est-ce que quelqu'un a des suggestions?

+0

Le meilleur moyen est de faire un pendule et de le démarrer dans le vide – vol7ron

+0

Vous n'avez pas à - Newton a déjà pris soin de lui pour vous ;-) – belugabob

+0

[This] (http://jsfiddle.net/ Wolfy87/DZBwp /) * peut * aider. Il implique l'inertie dans une toile mais l'idée générale est la même. – Olical

Répondre

0

iScroll implémente le défilement avec inertie, mais je ne suis pas sûr de savoir comment il réagirait à l'ajout et à la suppression d'éléments au milieu du défilement. Cela pourrait valoir la peine d'être vu.

Questions connexes