11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je rencontre un conflis entre 2 jQuery :
1 de style lavalamp et l'autre en lightbox,
J'obtiens coup à coup un déblocage de l'un ou l'autre lorsque j'intervertis leur ordre d'appel

- un aperçu du chantier en cours ci-joint :
http://www.gorgodzn.com/eval2/illustr.html

Je suis allée voir un article qui ne m'a pas solutionné sur :
http://api.jquery.com/jQuery.noConflict/

Si vous auriez une solution ou une autre version de type lightbox ou FancyZoom à proposer qui soit ici compatible; vous feriez mon plus grand bonheur!
je crois que c'est ma lavalamp qui use d'un code ancestral mais que j'ai réussie à la marier avec d'autres bibliothèques de style sur divers pages! Bref j'y suis tout particulièrement attachée et j'ai beaucoup d'espoir !!

Merci d'avance
Dans l'absolu le problème est résolu puisque ça fonctionne avec un FancyZoom!
Mais c'est toujours bien obscure!!

j'ai fait divers essais au préalable entre autres avec des bibliothèques de style mootools et rien à faire!
Ce n'est pas la première fois que je trépasse face à ce genre de situation.
Vos lumières sont donc bien évidemment les bienvenues
Effectivement le code de lavalamp (si c'est celui là) est assez vieux et non compatible avec des versions récentes de jquery (1.3+ je crois).
Voici un version du code que j'ai modifié :
(Minimisé provenant de musity.fr, site sur lequel je l'avais utilisé pour le menu, j'ai pas trouvé comment le déminimisé)
(function($){$.fn.lavaLamp=function(o){o=$.extend({fx:"linear",speed:500,click:function(){}},o||{});return this.each(function(){var me=$(this),noop=function(){},$back=$('<li class="back"><div class="left"></div></li>').appendTo(me),$li=$(" > li",this),curr=$(" > li.current",this)[0]||$($li[0]).addClass("current")[0];$li.not(".back").hover(function(){move(this);$(curr).removeClass('current');},noop);$(this).hover(noop,function(){move(curr);$(curr).addClass('current');});$li.click(function(e){setCurr(this);return o.click.apply(this,[e,this]);});setCurr=function(el){var $el=$(el),width=o.margin?(parseInt($el.width())-parseInt(o.margin)*2):$el.width();$back.css({left:el.offsetLeft+"px",width:width+"px"});curr=el;$li.not($el).removeClass('hover');$el.addClass('hover');}
me.data('setCurr',setCurr);setCurr(curr);if(o.margin){$back.css('margin-left',o.margin);$back.css('margin-right',o.margin);}
function move(el){var $el=$(el),width=o.margin?(parseInt($el.width())-parseInt(o.margin)*2):$el.width();$li.not($el).removeClass('hover');$el.addClass('hover');$back.stop().animate({width:width+'px',left:el.offsetLeft+'px'},o.speed,o.fx);};});};})(jQuery);


Pour info le noConflict c'est si tu utilises d'autres librairies qui utilise le $ (prototype par exemple) et donc ça marche pas entre les versions de jquery.
merci moOx,

il s'agit bien de cette lavalamp.

J'ai testé ton code en l'inserant dans une balise de type
 <script type="text/javascript">
dans mon fichier html

Sous mon appel js.

Aucune différence.
Toi tu le cales où?

J'ai scruté le code source de ton site. je ne l'ai pas vu!
Au passage, très beau boulot !!
euh nouvelle manip' je l'ai mis et testé en remplacement du contenu : jqeruy.lavalamp.min.js!

Flop!