Zum Inhalt springen

rgaccordion und mouseover

Erstellt am 17. Juni 2008 · 6 Antworten · letzte Antwort am 3. Februar 2009

Tags: JavaScript & AJAX, Frage

jan_0815 ·

Ich benutze das rgaccordion Menü.

Wenn man irgendein menüpunkt anklickt, dann klappt dieser auf.

Diesen effekt möchte ich gerne als mouseover.

Ich dachte man kann es einfach machen indem man die classe einfach auf act setzt.
geht leider nicht.

onmouseover="this.className='toggle';"

Hat jemand eine idee ?
oder ist das nicht so einfach ?

just2b ·

Hallo,

du musst einfach nur das js anpassen und beim addEvent statt click eben ein mouseover eintragen

georg

jan_0815 ·

sich in der mootools nach accordion und dann nach click.

das tausch du dann aus.

Hier ein kleiner ausschnitt aus meiner mootools
wenn es eine möglichkeit gibt ohne mootools zu manipulieren, bitte her damit.

} else if (this.container && !test){
toggler.inject(this.container);
element.inject(this.container);
}
var idx = this.togglers.indexOf(toggler);
toggler.addEvent('mouseover', this.display.bind(this, idx));
if (this.options.height) element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});
if (this.options.width) element.setStyles({'padding-left': 0, 'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});
element.fullOpacity = 1;
if (this.options.fixedW

Gruenbaer ·

Hallo,

das hat ja super geklappt. Vielen Dank.

Nun habe ich 3 Fragen...

1. Wäre es möglich den Titel zu verlinken, und nicht nur per mouse over das Content Element aufzuklappen?

2. Wie kann ich eine Zeitverzögerung von sagen wir 200ms einbauen, die verstreichen müssen, bevor das CE aufklappt?

3. Ganz toll wäre es, wenn das aufklappen beim überfahren eines anderen Titels unterbrochen wird, das initial überfahrene CE wieder schön zuklappt und gleichzeitig das zweite dann aufklappt. Geht das?

Vielen Dank!

Emil

lil-trick ·

so ich möchte auch ein "Menü" mit rgaccordion erstellen - funktioniert auch nur eben dieses mousover, aber ich finde in der Datei menu.js kein addEvent - wenn ich das tausche funkt gar nichts mehr window.addEvent('mouseover', function()

var accordion= '';var accordion2 = '';

window.addEvent('domready', function(){

accordion = new Accordion('span.toggle', 'ul.content', {
	display:'',
	alwaysHide:true,
	opacity: false,
	onActive: function(toggler, element){
		toggler.addClass('act');
		parentelement = element;
	},

	onBackground: function(toggler, element){
		toggler.removeClass('act');		
	}
});	

accordion2 = new Accordion('span.toggle2', 'ul.content2', {
	display:'',
	alwaysHide:true,
	opacity: false,
	onActive: function(toggler, element){
		toggler.addClass('act2');
		parentelement.setStyle('height', 'auto');
	},

	onBackground: function(toggler, element){
		toggler.removeClass('act2');		
	}
});
//ul#top > li

  function checkHash(){
    var found = false;
    var offset = 0;
    var tmp = 0;

    $$('#rgaccordmenu li span.toggle').each(function(anchorid, i) {
      if (anchorid.hasClass('open') && !found) {
          accordion.display(offset);
          found = true;
      } else {
        offset++;
      }
    });

    //if (!found) accordion.display(0);
  }


  function checkHash2(){
    var found = false;
    var offset = 0;
    var tmp = 0;

    $$(' span.toggle2').each(function(anchorid, i) {

      if (anchorid.hasClass('open') && !found) {

          accordion2.display(offset);
          found = true;
      } else {
        offset++;
      }
    });
    //if (!found) accordion2.display(0);    
  }

  
  
var x = new Chain();
x.chain(checkHash);  
x.chain(checkHash2);
x.callChain();
x.callChain.delay(1500, x);

});
lil-trick ·

ok habs gefunden - habs nur nicht gefunden da sich der mootools Code anscheinend verändert hat - bzw. jetzt die gekürzte Variante genommen wird und diese etwas Unübersichtlich ist 😃!