Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 18. März 2011 10:55
- blame
- Gast
[GELÖST] Brauche Hilfe bei ein-/ausklappbaren JS Menü
Hallo,
ich entwickle gerade für einen Kunden eine neue Seite (das unfertige Design ist HIER zu sehen).
Ich habe erst das Design mit YAML erstellt und dann in CMSms integriert.
War auch wirklich nicht schwer und hat ganz gut funktioniert.
Habe mich auch schon etwas in das CMS eingelesen.
Folgendes Problem habe ich nun:
Ich habe eine Navigation mit 3 Ebenen.
Jede Unterebene soll auf- und zuklappbar sein, dabei soll aber immer nur eine Ebene offen sein.
Nach kurzer Suche hier im Forum bin ich auf DIESEN Beitrag gestoßen und habe dann die Navigation von HIER integriert.
Wie man an meiner Seite (siehe oben) erkennen kann funktioniert das auch, allerdings nur bei Ebene 1 und 2.
Unter Default Templates Explained -> Higher End sollte eigentlich das 3. Menü aufgehen.
Default Templates Explained ist die 2. Ebene und Higher End die 3. Ebene.
Ich denke es liegt an der Datei section_expand.tpl
Ich kenne mich mit den CMS und JavaScript Syntax noch nicht so gut aus, zumindest könnte ich die 3. Ebene noch nicht umsetzen.
Wenn mir da jemand Helfen könnte, wäre ich sehr dankbar.
Hier der Code:
{if $count > 0}
{literal}
<script type="text/javascript" language="javascript" src="lib/helparea.js"></script>
{/literal}
<div class="menu">
<ul id="menu">
{assign var="prevdepth" value="1"}
{foreach from=$nodelist item=node}
{assign var="prevdepth" value=$prevnode->depth}
{if ($node->depth <= $prevdepth)}
{if ($prevnode->haschildren == "1")}<li></li></ul></div></li> {* bugfix if subitems were not shown in menu *}
{else}
{if $node->depth < $prevdepth}
{assign var="act_depth" value=$prevdepth-$node->depth}</li>
{while (($act_depth > 0) and ($collapseopened > 0))}
</ul></div></li>
{assign var="act_depth" value=$act_depth-1}
{assign var="collapseopened" value=$collapseopened-1}
{/while}
{else}
</li>
{/if}
{/if}
{/if}
{if $node->type == 'separator'}
<li id="separator"></li>
{else}
{if $node->current == true}<li id="active">
{else}<li>
{/if}
<a id="pic{$node->id}" {if $node->type != 'sectionheader'}href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}{/if}{if $node->haschildren == '1'}
{assign var="collapseopened" value=$collapseopened+1} onclick="expandcontent('sub{$node->id}')"{else}{/if} style="cursor:hand; cursor:pointer">
{if $node->type == 'sectionheader'}<span class="sectionheader">{/if}
{$node->menutext}
{if $node->type == 'sectionheader'}</span>{/if}
</a>
{if $node->haschildren == '1'}<div id="sub{$node->id}" class="expand"><ul>{/if}
{/if}
{assign var="prevnode" value=$node}
{/foreach}
{if ($prevnode->haschildren == "1")}<li></li></ul></div></li> {* bugfix if subitems were not shown in menu *}
{else}
{if $prevnode->depth > 1}
{assign var="act_depth" value=$prevnode->depth-1}</li>
{while (($act_depth > 0) and ($collapseopened > 0))}
</ul></div></li>
{assign var="act_depth" value=$act_depth-1}
{assign var="collapseopened" value=$collapseopened-1}
{/while}
{else}
</li>
{/if}
{/if}
</ul>
</div>
{/if}
Gruß,
Blame
Edit: Vorher hatte ich das Menü einfach mit {Menu collapse="1"} eingebaut. Was auch funktioniert hat, aber man konnte die Menüs nicht mehr zuklappen und auch alle auf einmal aufklappen, was nicht sein darf. Aber vielleicht gibt es ja auch andere (einfachere Möglichkeiten das zu realisieren?)
Beitrag geändert von blame (18. März 2011 10:58)
#2 22. März 2011 10:58
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Brauche Hilfe bei ein-/ausklappbaren JS Menü
und auch alle auf einmal aufklappen, was nicht sein darf.
Schau dir mal die helparea.js an
var collapseprevious="no"
Setz das mal auf "yes".
Offline
Seiten: 1