onOpen:
a function to execute when an item is clicked open. If there is an href within the li then that is passed to the function.
Hallo, habe dieses Menue bei Phatfusion gefunden.
http://www.inabauer.de/xmas_2009/imagemenu/xmas2009.htm
Leider konnte ich nicht herausgefinden, was ich ändern muss, damit auf Klick der Link funktioniert. Das Bild muß nicht festgestellt bleiben bis zum nächsten Klick und das Fenster: Meldung von Website soll nicht erscheinen, sondern das Bild soll aufgehen, dann will ich draufklicken und der Link soll funktionieren.
Vielen Dank für eure Hilfe, Stickl
Hier ist der js
/*********************************************************
Script : Image Menu
Version : 2.2
Authors : Samuel Birch
Desc :
Licence : Open Source MIT Licence
*********************************************************/
var ImageMenu = new Class({
getOptions: function(){
return {
onOpen: false,
onClose: Class.empty,
openWidth: 200,
transition: Fx.Transitions.quadOut,
duration: 400,
open: null,
border: 0
};
},
initialize: function(elements, options){
this.setOptions(this.getOptions(), options);
this.elements = $$(elements);
this.widths = {};
this.widths.closed = this.elements[0].getStyle('width').toInt();
this.widths.openSelected = this.options.openWidth;
this.widths.openOthers = Math.round(((this.widths.closed*this.elements.length) - (this.widths.openSelected+this.options.border)) / (this.elements.length-1))
this.fx = new Fx.Elements(this.elements, {wait: false, duration: this.options.duration, transition: this.options.transition});
this.elements.each(function(el,i){
el.addEvent('mouseenter', function(e){
new Event(e).stop();
this.reset(i);
}.bind(this));
el.addEvent('mouseleave', function(e){
new Event(e).stop();
this.reset(this.options.open);
}.bind(this));
var obj = this;
el.addEvent('click', function(e){
if(obj.options.onOpen){
new Event(e).stop();
if(obj.options.open == i){
obj.options.open = null;
obj.options.onClose(this.href, i);
}else{
obj.options.open = i;
obj.options.onOpen(this.href, i);
}
}
})
}.bind(this));
if(this.options.open){
if($type(this.options.open) == 'number'){
this.reset(this.options.open);
}else{
this.elements.each(function(el,i){
if(el.id == this.options.open){
this.reset(i);
}
},this);
}
}
},
reset: function(num){
if($type(num) == 'number'){
var width = this.widths.openOthers;
if(num+1 == this.elements.length){
width += this.options.border;
}
}else{
var width = this.widths.closed;
}
var obj = {};
this.elements.each(function(el,i){
var w = width;
if(i == this.elements.length-1){
w = width+5
}
obj[i] = {'width': w};
}.bind(this));
if($type(num) == 'number'){
obj[num] = {'width': this.widths.openSelected};
}
this.fx.start(obj);
}
});
ImageMenu.implement(new Options);
ImageMenu.implement(new Events);
/********************************************************/
onOpen:
a function to execute when an item is clicked open. If there is an href within the li then that is passed to the function.
Hallo Settler, danke, dass du dich mit meiner Frage befasst hast.
ABER - ich weiss nicht, was ich tun muss :-( damit es funktioniert.
Für weiteren Input bin ich dankbar, Ina
Ich hab's!
Habe die Option zwischenreinkopiert. Es funktioniert.
Code nachfolgend, für alle die es interessiert.
Noch mal - danke! Ina
el.addEvent('click', function(e){
if(obj.options.onOpen)
var myMenu = new ImageMenu('imageMenu', {
openWidth:528,
onOpen:function(e,i){console.log(e)}
});
{
new Event(e).stop();
if(obj.options.open == i){
obj.options.open = null;
obj.options.onClose(this.href, i);
}else{
obj.options.open = i;
obj.options.onOpen(this.href, i);
}
}
})
}.bind(this));
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)