jdmcreator
Messages postés647Date d'inscriptionsamedi 30 décembre 2000StatutMembreDernière intervention20 juillet 2012
-
7 avril 2009 à 14:12
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 2014
-
20 mai 2010 à 11:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 20 mai 2010 à 11:10
cool cool cool :)
XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 20094 15 avril 2009 à 09:18
- Pour le window.onload, c'est la seule manière que j'ai trouvé pour lancer le script au chargement sans utiliser de
>> Tout simplement :
addEvent(window, "load", maFonction);
- Pour le "sImg.style.filter = 'alpha(opacity='+sLayerImage+')';", j'ai bien penser utiliser un png, mais dans ce cas, il n'y a plus de transparence pour ie6...
>> Fait un test juste avant de regler ton opacité :
De manière "barbare" if(document.all) ... else ....
-Il fallait que je remonte l'objet (ou un event)...
>> Ta fonction addEvent te permet de récuperer l'event donc l'objet :
addEvent(obj, "click", clickObjet);
function clickObjet(event){
if(!event) var event = window.event;
var monObject = event.target || event.srcElement;
}
cyrphp
Messages postés18Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention13 avril 2009 13 avril 2009 à 19:01
@zoby44
heu non , peut-etre n'as tu pas compris ce que j'ai fait :)
dans la boite des propriétés de liens de fckeditor , tu as l'onglet avancé . C'est dans celui-ci que j'ai ajouté au formulaire un champ rel , pour gerer l'attribut rel des liens .
De la , dans l'attribut REL tu y met ce que tu veut (no-follow , external , [lighbox] , etc ... ) Tu applique alors ton lightbox ou tu veut :) .
Ceci dit , ton script est intéressant , ma remarque ne se portait que sur ton approche du problème .
GC
zoby44
Messages postés818Date d'inscriptionvendredi 3 novembre 2006StatutMembreDernière intervention 7 avril 2010 13 avril 2009 à 18:33
Salut. Je voulais d'abord répondre à XtremDuke.
- Pour le window.onload, c'est la seule manière que j'ai trouvé pour lancer le script au chargement sans utiliser de
- Pour le "sImg.style.filter = 'alpha(opacity='+sLayerImage+')';", j'ai bien penser utiliser un png, mais dans ce cas, il n'y a plus de transparence pour ie6, et ce n'est plus possible de modifier la transparence en changeant la valeur des LayerOpacity, et personnellement, je n'ai eu aucun problème avec les debuggeurs (Firebux et debbugbar pour ie8)
Il fallait que je remonte l'objet (ou un event). J'ai essayer pleins de méthodes, dont celle que tu donne, mais uniquement celle ci fonctionne (elle ma été donnée sur le forum du siteduzero d'ailleurs, merci à eux).
Mais je suis bien conscient qu'il me reste encore pleins de progrès a faire en JS.
@cyrphp -> J'ai bien pensé à modifier FckEditor, mais dans ce cas, toutes les images s'ouvrent dans un lightbox, je veux pouvoir choisir lesquelles ouvrir. Et à chaque changement de version de fck, il faut remodifier le fichier (enfin je pense).
@Heirem -> Je suis content qu'elle t'ai appris quelque chose.
cs_Heirem
Messages postés22Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention25 novembre 2011 13 avril 2009 à 17:59
Bonjour,
Tu as bien fait de mettre cette source dans le niveau débutant.
Ce n'est pas parfait et cela reste à travailler mais je la garde car ce code est vraiment enrichissant et formateur, en particulier en ce qui concerne la gestion des événements js.
Donc merci !
cyrphp
Messages postés18Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention13 avril 2009 13 avril 2009 à 16:13
Bonjour,
J'ai , a l'occassion adapté un FckEditor pour pour pouvoir faire usage du script lightbox.
Ma demarche fut differente . En effet , j'ai simplement modifié la boite de dialogue qui gere les lien (ainsi qu'une modification/ajout dans le script) et ajouté l'attribut "rel" .
Cela permet d'avoir accés a cet attribut "rel" pour les usages habituels ou pour differents scripts (sans forcement avoir a récrire ceci :) ) .
CyrPhp
XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 20094 8 avril 2009 à 16:13
Salut,
Je n'ai pas regardé en profondeur ton source mais j'ai cependant relevé quelques ambiguités :
- Comme celà a déjà été remonté, ton layer d'arrière-plan ne peut pas être au bonnes dimensions du viewport.
- Je vois dans le titre "LIGHTBOX SANS ONCLICK" : ok tu vas utiliser le gestionnaire d'évènement JS mais parcontre je vois un "window.onload" ?! Pourquoi ne pas utiliser en profondeur ta fonction "addEvent()" ?
- "sImg.style.filter = 'alpha(opacity='+sLayerImage+')';" rique de provoquer un saut d'humeur dans les débuggers CSS.
>> Attention aux fonctions anonymes qui provoquent des fuites mémoire.
A+
lakichemole
Messages postés253Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention18 mai 2009 8 avril 2009 à 14:15
Et la note :)
lakichemole
Messages postés253Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention18 mai 2009 8 avril 2009 à 14:14
Ayant mon debugger javascript activé sous IE6 j'ai un message d'erreur quand je click sur une image "windows.scroball a la valeur null" ligne 133 .
Sinon ça marche bien :)
zoby44
Messages postés818Date d'inscriptionvendredi 3 novembre 2006StatutMembreDernière intervention 7 avril 2010 7 avril 2009 à 23:25
Mais vu que je ne met pas de onclick, je ne sais pas comment faire pour l'ajouter dynamiquement (avec addEvent). Ce que j'ai fait, a la place, c'est mettre un id sur chaque images, et une ancre. Comme ça on garde la page à la position de l'image. C'est toujours mieux que de remonter en haut de la page à chaque fois.
jdmcreator
Messages postés647Date d'inscriptionsamedi 30 décembre 2000StatutMembreDernière intervention20 juillet 20127 7 avril 2009 à 23:03
Pour éviter de faire remonter la page, il faut utiliser return false dans le onclick comme onclick="return false;"
Cordialement,
JDMCreator
zoby44
Messages postés818Date d'inscriptionvendredi 3 novembre 2006StatutMembreDernière intervention 7 avril 2010 7 avril 2009 à 19:55
En effet, il y a quelques bugs. Il a encore d'autre améliorations a faire, par exemple, quand on clic sur une image qui est en milieu de page, vu que je remplace les liens par des ancres, la page remonte a chaque fois. Pas pratique. En tout cas, merci pour tes remarques. Je vais essayer de corriger ça pour ce soir.
jdmcreator
Messages postés647Date d'inscriptionsamedi 30 décembre 2000StatutMembreDernière intervention20 juillet 20127 7 avril 2009 à 14:12
Bonjour,
Bravo pour votre source, c'est simple et rapide.
Par contre, au niveau des erreurs de rendus, le fond gris ne prend pas toute la place dans la page. Aussi, peut-être rajouter comme style de position fixed, au cas où la page serait longue et son équivalent javascript pour IE7>
20 mai 2010 à 11:10
15 avril 2009 à 09:18
>> Tout simplement :
addEvent(window, "load", maFonction);
- Pour le "sImg.style.filter = 'alpha(opacity='+sLayerImage+')';", j'ai bien penser utiliser un png, mais dans ce cas, il n'y a plus de transparence pour ie6...
>> Fait un test juste avant de regler ton opacité :
De manière "barbare" if(document.all) ... else ....
-Il fallait que je remonte l'objet (ou un event)...
>> Ta fonction addEvent te permet de récuperer l'event donc l'objet :
addEvent(obj, "click", clickObjet);
function clickObjet(event){
if(!event) var event = window.event;
var monObject = event.target || event.srcElement;
}
13 avril 2009 à 19:01
heu non , peut-etre n'as tu pas compris ce que j'ai fait :)
dans la boite des propriétés de liens de fckeditor , tu as l'onglet avancé . C'est dans celui-ci que j'ai ajouté au formulaire un champ rel , pour gerer l'attribut rel des liens .
De la , dans l'attribut REL tu y met ce que tu veut (no-follow , external , [lighbox] , etc ... ) Tu applique alors ton lightbox ou tu veut :) .
Ceci dit , ton script est intéressant , ma remarque ne se portait que sur ton approche du problème .
GC
13 avril 2009 à 18:33
- Pour le window.onload, c'est la seule manière que j'ai trouvé pour lancer le script au chargement sans utiliser de
- Pour le "sImg.style.filter = 'alpha(opacity='+sLayerImage+')';", j'ai bien penser utiliser un png, mais dans ce cas, il n'y a plus de transparence pour ie6, et ce n'est plus possible de modifier la transparence en changeant la valeur des LayerOpacity, et personnellement, je n'ai eu aucun problème avec les debuggeurs (Firebux et debbugbar pour ie8)
- addEvent(obj,'click',(function (objet){
return function() {
sLight(objet)
};
})(obj));
Il fallait que je remonte l'objet (ou un event). J'ai essayer pleins de méthodes, dont celle que tu donne, mais uniquement celle ci fonctionne (elle ma été donnée sur le forum du siteduzero d'ailleurs, merci à eux).
Mais je suis bien conscient qu'il me reste encore pleins de progrès a faire en JS.
@cyrphp -> J'ai bien pensé à modifier FckEditor, mais dans ce cas, toutes les images s'ouvrent dans un lightbox, je veux pouvoir choisir lesquelles ouvrir. Et à chaque changement de version de fck, il faut remodifier le fichier (enfin je pense).
@Heirem -> Je suis content qu'elle t'ai appris quelque chose.
13 avril 2009 à 17:59
Tu as bien fait de mettre cette source dans le niveau débutant.
Ce n'est pas parfait et cela reste à travailler mais je la garde car ce code est vraiment enrichissant et formateur, en particulier en ce qui concerne la gestion des événements js.
Donc merci !
13 avril 2009 à 16:13
J'ai , a l'occassion adapté un FckEditor pour pour pouvoir faire usage du script lightbox.
Ma demarche fut differente . En effet , j'ai simplement modifié la boite de dialogue qui gere les lien (ainsi qu'une modification/ajout dans le script) et ajouté l'attribut "rel" .
Cela permet d'avoir accés a cet attribut "rel" pour les usages habituels ou pour differents scripts (sans forcement avoir a récrire ceci :) ) .
CyrPhp
8 avril 2009 à 16:13
Je n'ai pas regardé en profondeur ton source mais j'ai cependant relevé quelques ambiguités :
- Comme celà a déjà été remonté, ton layer d'arrière-plan ne peut pas être au bonnes dimensions du viewport.
- Je vois dans le titre "LIGHTBOX SANS ONCLICK" : ok tu vas utiliser le gestionnaire d'évènement JS mais parcontre je vois un "window.onload" ?! Pourquoi ne pas utiliser en profondeur ta fonction "addEvent()" ?
- "sImg.style.filter = 'alpha(opacity='+sLayerImage+')';" rique de provoquer un saut d'humeur dans les débuggers CSS.
- addEvent(obj,'click',(function (objet){
return function() {
sLight(objet)
};
})(obj));
>> tu te compliques la vie, pourquoi ne pas faire tout simplement "addEvent(obj,'click', sLight);" ?
- addEvent(sLayer,'click',function () {sClose(sLayer,sImg)});
>> Attention aux fonctions anonymes qui provoquent des fuites mémoire.
A+
8 avril 2009 à 14:15
8 avril 2009 à 14:14
Sinon ça marche bien :)
7 avril 2009 à 23:25
7 avril 2009 à 23:03
Cordialement,
JDMCreator
7 avril 2009 à 19:55
7 avril 2009 à 14:12
Bravo pour votre source, c'est simple et rapide.
Par contre, au niveau des erreurs de rendus, le fond gris ne prend pas toute la place dans la page. Aussi, peut-être rajouter comme style de position fixed, au cas où la page serait longue et son équivalent javascript pour IE7>
Cordialement,
JDMCreator