Ergebnis 1 bis 5 von 5

Thema: Accordion als Artikel mehrfach auf einer Seite einbinden - 1. Element offen

  1. #1
    Contao-Nutzer
    Registriert seit
    23.08.2012.
    Beiträge
    11

    Standard Accordion als Artikel mehrfach auf einer Seite einbinden - 1. Element offen

    Hallo zusammen,

    ich habe folgendes Szenario:
    Auf einer Seite wird an 2 Stellen ein Accordion als Inhaltselement "Artikel" eingefügt. Also quasi als Referenz.
    Das funktioniert soweit auch wunderbar.
    Jetzt möchte ich gerne, dass immer das erste Element offen ist und man nie alle Tabs schließen kann.
    Letzteres verhindert die Angabe
    Code:
    alwaysHide: false
    . Soweit perfekt.

    Normalerweise sollte die Option
    Code:
    display: 0
    das erste Element öffnen.
    Auch das funktioniert eigentlich. Jedoch leider nur beim ersten Accordion was auf der Seite vorkommt.
    Beim 2. Accordion, welches ja eigentlich nur ein Klon des 1. ist funktioniert es leider nicht. :-(

    Weiß jemand Rat?

  2. #2
    Contao-Fan Avatar von joe
    Registriert seit
    20.06.2009.
    Ort
    Lüneburg
    Beiträge
    687
    User beschenken
    Wunschliste

    Standard

    Das liegt daran das die Accordions nicht gruppiert werden. Wenn ich das richtig verstanden habe hast du 2 Accordion Gruppen und möchtest das jeweils das erste Element je Gruppe offen ist.

    Du musst auf jeden fall dann dein moo_accordion template anpassen und den Artikel jeweils eine class accordiongroup geben.

    Wenn du das Accordion Template wie folgt modifizierst sollte das gehen:

    Code:
    <script type="text/javascript">
    /* <![CDATA[ */
    (function($) {
      window.addEvent('domready', function() {
        $$('.accordiongroup').each(function(el) {
    	    var accordion = new Accordion(el.getElements('.toggler'), el.getElements('.accordion'), {
    	      opacity: false,
    	      alwaysHide: true,
    	      onActive: function(tog, el) {
    	        el.setProperty('aria-hidden', 'false');
    	        tog.addClass('active');
    	        tog.getNext('div').fade('in');
    	        tog.setProperty('aria-expanded', 'true');
    	        return false;
    	      },
    	      onBackground: function(tog, el) {
    	        el.setProperty('aria-hidden', 'true');
    	        tog.removeClass('active');
    	        tog.getNext('div').fade('out');
    	        tog.setProperty('aria-expanded', 'false');
    	        return false;
    	      }
    	    });
        });
    
        $$('div.toggler').each(function(el) {
          el.setProperty('role', 'tab');
          el.setProperty('tabindex', 0);
          el.addEvents({
            'keypress': function(event) {
              if (event.code == 13) {
                this.fireEvent('click');
              }
            },
            'focus': function() {
              this.addClass('hover');
            },
            'blur': function() {
              this.removeClass('hover');
            },
            'mouseenter': function() {
              this.addClass('hover');
            },
            'mouseleave': function() {
              this.removeClass('hover');
            }
          });
        });
        $$('div.ce_accordion').each(function(el) {
          el.setProperty('role', 'tablist');
        });
        $$('div.accordion').each(function(el) {
          el.setProperty('role', 'tabpanel');
        });
      });
    })(document.id);
    /* ]]> */
    </script>
    Trainings und Coachings zur Fort und Weiterbildung sowie Beratung in den Bereichen Contao, JavaScript, jQuery, VueJS, React, PHP, NodeJS und vielen weiteren Themen.

    Mehr unter jgreg.dev

    Follow me on Twitter @JoeRayGregory

  3. #3
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard

    Mh, das modifizierte Accordion-Template greift nicht, obwohl zwei Artikel jeweils die Klasse .accordiongroup bekommen haben.
    In beiden Artikeln sind die Accordionelemente alle offen und nicht klickbar.


    Mark

  4. #4
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard

    Ich schieb das nochmal nach oben - hat jemand noch einen Tipp für mehrere Accordion-Gruppen auf einer Seite?

    Danke

    Mark

  5. #5
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    82

    Standard

    Stehe auch gerade vor dem Problem auf einer Seite zwei Accordions zu beherbergen. Bei Ersten soll immer nur ein Element offen sein. Beim Zweiten aber mehrere.

    Ich denke joe meinte, dass jedes accordion eine eigene Klasse (besser wohl ID) braucht. Diese kann man dann im moo_accordion seinen Bedürfnissen anpassen. Im Prinzip kann es auch nur so funktionieren. Habe beide Accordions die selbe Klasse, woher soll mootools dann wissen, welches geöffnet wurde oder offen sein soll? Probiere das gleich mal aus...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •