LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009
-
26 avril 2011 à 13:58
LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009
-
26 avril 2011 à 13:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009 26 avril 2011 à 13:58
Bonjour,
Ton code est tres clair, mais j'ai quelques remarques :
- Pourquoi creer les methodes dans le constructeur en les rajoutant a chaque object plutot qu'utiliser le prototype de ta classe ?
- Plutot que de dupliquer tout ton code pour les cas "horizontal" et "vertical", pourquoi ne pas juste stocker les noms d'attribut a utiliser pour chaque cas. Par exemple, si dans ton constructeur tu changes :
// Si type est definie
if(typeof(type) == 'undefined')
direction = 'horizontal';
else
direction = type;
par :
switch(type)
{
case 'vertical':
direction = 'vertical';
this.scrollLeftTop = 'scrollTop';
this.scrollWidthHeight = 'scrollHeight';
this.offsetWidthHeight = 'offsetHeight';
// Autres proprietes utiles
break;
default: // horizontal pour les autres valeurs
direction = 'horizontal';
this.scrollLeftTop = 'scrollLeft';
this.scrollWidthHeight = 'scrollWidth';
this.offsetWidthHeight = 'offsetWidth';
// Autres proprietes utiles
tes autres methodes deviennent beaucoup plus simples (et plus rapides). Par exemple :
this.setValue = function(percentage)
{
elem[this.scrollLeftTop] = setPercentage(percentage);
}
26 avril 2011 à 13:58
Ton code est tres clair, mais j'ai quelques remarques :
- Pourquoi creer les methodes dans le constructeur en les rajoutant a chaque object plutot qu'utiliser le prototype de ta classe ?
- Plutot que de dupliquer tout ton code pour les cas "horizontal" et "vertical", pourquoi ne pas juste stocker les noms d'attribut a utiliser pour chaque cas. Par exemple, si dans ton constructeur tu changes :
// Si type est definie
if(typeof(type) == 'undefined')
direction = 'horizontal';
else
direction = type;
par :
switch(type)
{
case 'vertical':
direction = 'vertical';
this.scrollLeftTop = 'scrollTop';
this.scrollWidthHeight = 'scrollHeight';
this.offsetWidthHeight = 'offsetHeight';
// Autres proprietes utiles
break;
default: // horizontal pour les autres valeurs
direction = 'horizontal';
this.scrollLeftTop = 'scrollLeft';
this.scrollWidthHeight = 'scrollWidth';
this.offsetWidthHeight = 'offsetWidth';
// Autres proprietes utiles
tes autres methodes deviennent beaucoup plus simples (et plus rapides). Par exemple :
this.setValue = function(percentage)
{
elem[this.scrollLeftTop] = setPercentage(percentage);
}
function getPercentage()
{
return parseInt((elem[this.scrollLeftTop] * 100) / (elem[this.scrollWidthHeight] - elem[this.offsetWidthHeight]));
}
etc...
Eric