SCROLL BARS EN JAVASCRIPT SUR UNE PAGE HTML

cs_hornetbzz Messages postés 59 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 3 janvier 2011 - 27 déc. 2010 à 10:12
Glennouchet Messages postés 6 Date d'inscription mercredi 17 février 2010 Statut Membre Dernière intervention 15 juillet 2012 - 22 janv. 2011 à 06:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52625-scroll-bars-en-javascript-sur-une-page-html

Glennouchet Messages postés 6 Date d'inscription mercredi 17 février 2010 Statut Membre Dernière intervention 15 juillet 2012
22 janv. 2011 à 06:07
Salut à vous deux et merci pour l'info.

Je débute complètement en javascript, surtout parce que l'accès aux éléments déclarés en HTML est particulièrement délicat, il est fréquent que mes scripts foirent. Je suis bien content de ne pas avoir passé 2 jours pour rien sur ce code. Avant de plancher sur la portabilité, je me suis heurté à un autre problème :

On remarquera que je n'ai pas réussi à remonter d'un cran dans les fonctions mouve, clic et uclic à partir de this qui correspond dans ces fonctions à sc[n].canvas, je n'ai pas trouvé de référence simple pour accéder à sc[n].autrePropriété, genre this.enArrière.autrePropriété. D'où les lignes 79, 92 et 97, où je fouille sauvagement pour trouver le bon n. Je ne trouve pas ça beau, et c'est pour ça que l'on est obligé de nommer les scroll bars sc[n]. J'aurais voulu ne pas utiliser de tableau, mais que chacun puisse créer ses scrollbars avec des noms simples...

Il paraît qu'en HTML5 le canvas sera réellement supporté dans tous les navigateurs... Et je ne peux même pas tester sous IE, je l'ai désactivé sur toutes mes machines...

PS : je viens de voir une faute de frappe ligne 47 (roientation au lieu de orientation) que je vais tenter de corriger, mais cela ne semble pas gêner le script.
tefa24600 Messages postés 30 Date d'inscription samedi 4 août 2007 Statut Membre Dernière intervention 21 février 2012
21 janv. 2011 à 16:44
Source intéressant (même si je ne vois pas l'utilité directe).

En ce qui concerne le portage sur IE, il existe une petite librairie, http://code.google.com/p/explorercanvas/ qui permet de porter ça sur le tristement célèbre navigateur de Microsoft

@hornetbzz, tu as aussi la solution du try & catch :

try {
// sous W3C
referenceVersUnElement.addEventListener('typeEvenement', referenceVersFonction, phase);
referenceVersUnElement.removeEventListener('typeEvenement', referenceVersFonction, phase);
} catch (err) {
// sous IE
referenceVersUnElement.attachEvent('ontypeEvenement',referenceVersFonction);
referenceVersUnElement.detachEvent('ontypeEvenement',referenceVersFonction);
}
cs_hornetbzz Messages postés 59 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 3 janvier 2011
27 déc. 2010 à 10:12
il n'y a pas grand chose à faire pour rendre ton code un peu plus X-browser.
cf http://hornetbzz.developpez.com/tutoriels/javascript/dom/

W3C
referenceVersUnElement.addEventListener('typeEvenement', referenceVersFonction, phase);
referenceVersUnElement.removeEventListener('typeEvenement', referenceVersFonction, phase);

Modele MS (IE)
referenceVersUnElement.attachEvent('ontypeEvenement',referenceVersFonction);
referenceVersUnElement.detachEvent('ontypeEvenement',referenceVersFonction);
Rejoignez-nous