2010-10-11 8 views
1

J'ai essayé de créer ma propre implémentation de barre de défilement personnalisée en JavaScript. Il doit imiter l'apparence et le comportement de MS Office 2007 J'ai vérifié de nombreuses solutions, mais rien ne répond à mes besoins. Mon problème principal est celui-ci: Comment calculer un équilibre entre la hauteur de la barre de défilement et le nombre de lignes qu'elle déplacera la page cible lorsqu'elle a elle-même déplacé un pixel? En d'autres termes, un équilibre entre la précision de la barre de défilement et l'espace disponible pour le faire glisser vers le haut et vers le bas. Existe-t-il un algorithme prêt à être réutilisé? J'ai cherché sur le net mais n'ai rien trouvé, assez étrange pour ce qui doit être un problème de codage commun?Algorithme de barre de défilement

Merci!

+0

Peut-être que vous avez déjà vérifié, mais si vous n'avez pas: avez-vous jeté un coup d'oeil à jScrollPane ... il pourrait être possible de changer le style ("thème" 0 et réaliser ce que vous voulez. .kelvinluck.com/assets/jquery/jScrollPane/jScrollPane.html] – Nivas

+0

@Nivas - votre lien est obsolète http://jscrollpane.kelvinluck.com/ –

+0

J'ai trouvé le nouveau JScrollPane (http: //jscrollpane.kelvinluck J'ai un comportement erratique dans tous les navigateurs que j'ai testés Essayez de cliquer sur la zone de défilement au dessus ou en dessous de la barre dans les pages de démonstration Parfois la barre bouge, parfois non. –

Répondre

2

c'est de savoir comment calculer la position haut de votre barre de défilement

scrollbar.style.top = element.scrollTop/(element.scrollHeight/element.style.height) 

vous pouvez utiliser cette onscroll de votre élément de défilement. vice versa, cela fonctionne dans l'autre sens, lorsque vous faites glisser votre barre de défilement. Désolé pour cette réponse quick'n'dirty, fournira plus d'informations plus tard si vous avez aimé.

+0

Merci, mais je ne vous ai pas demandé comment calculer la position haute de ma barre de défilement Si vous avez quelque chose à l'esprit, veuillez fournir plus de détails –

+0

vous avez calculé l'algorithme précédent pour calculer la barre de défilement si vous faites défiler avec votre molette de la souris. donc, si "scrollbar.style.top = element.scrollTop/(element.totalHeight/element.height) " la formule pour calculer element.scrollTop doit être "element.scrollTop = element.totalHeight/element.height * scrollbar.style .top " – koko

+0

S'il vous plaît, expliquez ce que element.scrollTop element.totalHeight et element.height signifient. Je ne vous comprends pas du tout. –