fuxancs 2009. máj. 30. 14:18 | válasz | #188
Üdv Mindenkinek! Olyan problémám akadt hogy van egy színes menü ami jS-böl és css böl dolgozik azt kéne megoldanom hogy alaphelyzetbõl mindegyik szín látszódjon ne csak akkor mikor föléviszem az egeret az active link pedig kilegyen emelve mikor rá klikkelnek! Nagyon örülnék ha valaki tudna segíteni ! Elõre is köszi! a js Kód! var YOOFancyMenu=new Class({initialize:function(menu,options){this.setOptions({transition:Fx.Transitions.sineInOut,duration:500,wait:false,onClick:Class.empty,opacity:1,mode:'move',slideOffset:30,colorSelector:['red','pink','blue','green','orange','yellow','lilac','turquoise'],itemSelector:'li.level1',activeSelector:'li.active'},options);this.menu=$(menu),this.current=this.menu.getElement(this.options.activeSelector);this.li=[];this.div=[];this.menu.getElements(this.options.itemSelector).each(function(item,i){this.createBackground(item,i);item.addEvent('click',function(event){this.clickItem(event,item)}.bind(this));item.addEvent('mouseenter',function(){this.mouseenterItem(item,i)}.bind(this));if(this.options.mode=='move'){item.addEvent('mouseleave',function(){this.mouseleaveItem(this.current,i)}.bind(this))}else{item.addEvent('mouseleave',function(){this.mouseleaveItem(item,i)}.bind(this))}}.bind(this));if(this.options.mode=='move'){if(this.current){this.setCurrent(this.current)}else{var first=this.menu.getElement('li');first.addClass('active');first.addClass('current');this.setCurrent(first)}}},createBackground:function(item,i){if(this.options.mode=='move'&&i!=0)return;var css='fancy '+'bg'+(i+1);this.options.colorSelector.each(function(col,i){if(item.hasClass(col)){css+=' bg'+col}});this.div=new Element('div',{'class':'fancy-1'}).adopt(new Element('div',{'class':'fancy-2'}).adopt(new Element('div',{'class':'fancy-3'})));this.div.fx=this.div.effects(this.options);this.li=new Element('li',{'class':css}).adopt(this.div).injectInside(this.menu);this.li.fx=this.li.effects(this.options)},setCurrent:function(item){this.li[0].setStyles({'left':item.offsetLeft,'width':item.offsetWidth,'visibility':'visible','opacity':this.options.opacity});this.current=item},clickItem:function(event,item){if(!this.current)this.setCurrent(item);this.current=item;this.options.onClick(new Event(event),item)},mouseenterItem:function(item,i){switch(this.options.mode){case'fade':this.fadeFx(item,i,true);break;case'slide':this.slideFx(item,i,true);break;default:this.moveFx(item,0)}},mouseleaveItem:function(item,i){switch(this.options.mode){case'fade':this.fadeFx(item,i,false);break;case'slide':this.slideFx(item,i,false);break;default:this.moveFx(item,0)}},moveFx:function(item,i){if(!this.current)return;this.li.fx.custom({'left':[this.li.offsetLeft,item.offsetLeft],'width':[this.li.offsetWidth,item.offsetWidth]})},fadeFx:function(item,i,show){if(show){this.li.fx.setOptions(this.options);this.li.fx.set({'left':item.offsetLeft,'width':item.offsetWidth});this.li.fx.custom({'opacity':[0.5]})}else{var dur=this.options.duration*2;this.li.fx.setOptions({duration:dur});this.li.fx.custom({'opacity':[1.1]})}},slideFx:function(item,i,show){var offset=this.options.slideOffset;if(show){this.li.fx.set({'opacity':1,'left':item.offsetLeft,'width':item.offsetWidth});this.div.fx.set({'margin-top':offset});this.div.fx.custom({'margin-top':[offset,0]})}else{this.div.fx.set({'margin-top':0});this.div.fx.custom({'margin-top':[0,offset]})}}});YOOFancyMenu.implement(new Options); Még egyszer THX elöre is