Salut,
function GetCursor(e) {
if (navigator.appName.indexOf("Explorer") > -1) {
this.curY = event.clientY;
this.curX = event.clientX;
}
else{
this.curY = e.clientY;
this.curX = e.clientX;
}
}
matmat a écrit :
Quelle est la meilleur methode, dans quelle cas utiliser un constructeur et dans quel cas un fonction?
Le constructeur est plus souple d'utilisation. Généralement, c'est préférable dans le cadre d'une bibliothèque que tu souhaites agrandir malgré que ça puisse augmenter légérement le volume de code (dans un premier temps)... sauf que...
Opera comprend ceci :
if(navigator.appName.indexOf("Explorer") > -1)
et ce n'est généralement pas une bonne idée que de tester par rapport au nom d'un navigateur (il vaut mieux tester les codes propriétaires) donc il vaudrait mieux écrire :
if(document.attachEvent)
par exemple ou, au pire, ajouter à ton code précédent :
if(!window.opera && navigator.appName.indexOf("Explorer") > -1)
Par ailleurs, si tu mets this, le jour où tu passes avec des événements de type DOM-2, ça ne fonctionnera plus pour IE. Le mieux, c'est de créer un paramètre (argument) supplémentaire pour ta fonction et de le mettre à la place du this.
Pour les variables globales, je ne comprends pas ici en quoi elles te seraient utiles.
Et dans ta dernière fonction, tu peux mettre :
function setOpacity(obj, xOpacity)
{
var objStyle = obj.style;
objStyle.opacity = objStyle.MozOpacity = objStyle.KhtmlOpacity = xOpacity;
objStyle.filter = 'alpha(opacity=' + xOpacity * 100 + ')';
}
Modifié par koala64 (13 Jan 2007 - 00:03)