Java programozas, javascript
-
fuxancs #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[i]=new Element('div',{'class':'fancy-1'}).adopt(new Element('div',{'class':'fancy-2'}).adopt(new Element('div',{'class':'fancy-3'})));this.div[i].fx=this.div[i].effects(this.options);this.li[i]=new Element('li',{'class':css}).adopt(this.div[i]).injectInside(this.menu);this.li[i].fx=this.li[i].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[i].fx.custom({'left':[this.li[i].offsetLeft,item.offsetLeft],'width':[this.li[i].offsetWidth,item.offsetWidth]})},fadeFx:function(item,i,show){if(show){this.li[i].fx.setOptions(this.options);this.li[i].fx.set({'left':item.offsetLeft,'width':item.offsetWidth});this.li[i].fx.custom({'opacity':[0.5]})}else{var dur=this.options.duration*2;this.li[i].fx.setOptions({duration:dur});this.li[i].fx.custom({'opacity':[1.1]})}},slideFx:function(item,i,show){var offset=this.options.slideOffset;if(show){this.li[i].fx.set({'opacity':1,'left':item.offsetLeft,'width':item.offsetWidth});this.div[i].fx.set({'margin-top':offset});this.div[i].fx.custom({'margin-top':[offset,0]})}else{this.div[i].fx.set({'margin-top':0});this.div[i].fx.custom({'margin-top':[0,offset]})}}});YOOFancyMenu.implement(new Options);
Még egyszer THX elöre is