Axure中继器实现二级导航栏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Axure中继器实现二级导航栏相关的知识,希望对你有一定的参考价值。

参考技术A         今天使用中继器来实现一个简单的二级导航栏。这是一款折叠形可变导航,一般应用在系统页面左侧。它的最大优势是:1、菜单根据中继器配置的列表动态加载整个导航菜单(后期系统维护升级可快速增减菜单)。2、二级导航菜单数量不等也可以正常工作(突破局限)。
        下面以制作一个简单的后台管理系统导航为例。

一、准备元件

1、将工作界面划分为三块:头部放一个动态面板,里面放系统logo和系统名称;左侧导航区域放一个动态面板,里面放一个中继器;右侧放一个内联框架(动态交互区域)。

2、双击中继器,进入中继器编辑模式。复制矩形元件并粘贴多三个,共四个按右对齐排列。如下图所示,一级导航(w:180px,h:30px),二级导航(w:160px,h:25px)。注意,各矩形件元件间的行高是10px,各矩形元件的填入文字及命名见图。
将所有二级导航选中,将它们设置为一个组合,命名为:组合_二级导航。这个组合用于点击一级导航进行交互时,实现组合整体展开/收缩(隐藏/显示)。
再将它们设置为一个选项组,命名为:选项组_二级导航。这个选项组用于点击二级导航进行交互时,实现只选中一个二级导航。 注意 :要将所有二级导航选中,右键选中:选项组,命名为:选项组_二级导航。 不是将它们的组合设置为选项组 。
同样,将一级导航也设置为一个选项组,命名为:选项组_一级导航。

二、设置元件样式

1、设置中继器的行距。即间距为10px。

2、设置一级导航和二级导航的鼠标悬停、选中的样式。一级导航和二级导航鼠标悬停样式设置, 填充 颜色为:FFCC99;一级导航选中样式设置, 字色 为:FFCCCC;二级导航选中样式设置, 填充 颜色为:FFCCCC;

三、设置导航数据。以后系统升级,增减导航就是通过设置导航数据来完成。

1、设置中继器样式数据。选中:中继器,选中:样式。

2、设置样式数据列名。双击第一列:Column0,重新命名为:FirstLevel。这一列对应的是一级导航。双击第二列,命名为:SecLevel1。重复操作,得到 SecLevel2、SecLevel3。SecLevel1、SecLevel2、SecLevel3分别对应的是二级导航1、二级导航2、二级导航3。

3、设置样式数据内容。这是导航显示的结构数据,或者说,导航将根据设置的样式数据内容来显示。以后系统升级,只要修改这个数据内容即可。根据需求,这里设置的数据如下:

四、设置交互

1、设置载入时事件。在载入元件时,根据显示样式数据设置的值作为导航文本。
选中:中继器,选中:交互。选择事件:载入时,选择:设置文本,选择:添加目标。选中:一级导航。点击 fx,弹出编辑框。如下图:

删除中间输入框中的:一级导航。点击:插入变量或函数,选中:Item.FirstLeve,得到结果。如下图:

同样,设置二级导航1、二级导航2、二级导航3 的 fx 值分别为 Item.SecLeve1、Item.SecLeve2、Item.SecLeve3。得到结果,如下图:

2、设置每项加载事件。在每项加载时,根据显示样式数据设置的值显示或隐藏二级导航。从而实现二级导航菜单数量不等也可以工作。
选中:中继器,选中:交互。选择事件:每项加载,选择:启用情形。添加条件,第一个框选中:值,点击第二个框:fx,选中:Item.SecLevel1。如下图:

在此情形下,添加动作,选择:显示/隐藏,添加目标:二级导航1,选中:隐藏动作。这个设置是实现当二级导航1对应的数据值为空时,隐藏该二级导航菜单选择项。同样,设置二级导航2、二级导航3。得到结果,如下图:

3、设置二级导航的组合整体展开/收缩。即当点击一下一级导航时,或展开,或隐藏其下面全部二级导航。
选中:一级导航,点击:新建交互,选择:单击时,选择动作:显示或隐藏。选择目标:组合_二级导航,选择:切换。设置参数,如下图:

如果想实现初次加载导航时,二级导航是折叠的。即只看到一级导航。则可以将二级导航的组合设置为隐藏。
双击:中继器,选中:组合_二级导航,右键,选择:设为隐藏。

4、设置二级导航的单击事件。二级导航选中时,父级也选中。同时,在内联框架中打开链接页面。
选中:二级导航1,选择事件:单击时,点击:启用情形,点击:添加条件,选择:值,点 fx,点击:插入变量或函数,选择:Item.SecLevel1,设置值:角色列表。添加动作:设置选中,选择目标:二级导航1,值为真。添加目标,选中:一级导航,值为真。添加动作:框架中打开链接,选择元件:内联框架,选择页面:角色列表。

同样,添加情形2,设置二级导航1对应的第二行数据:系统日志。如果有第3行...,也同样设置。得到结果,如下图:

同样,设置:二级导航2、二级导航3 的单击事件。

至此,使用中继器来实现二级导航栏制作完毕。按F5预览下效果。

织梦DEDECMS调用导航栏的顶级栏目二级栏目及三级栏目

织梦调用导航菜单栏目,随着javascript的运用,导航栏的子栏目越来越多,在dedecms如何实现这些栏目的调用呢?

  1. 一般导航栏目的调用,该类栏目只有主栏目,没有子栏目,这类栏目一般适用于企业网站和个人网站。其样式图如下:

 

  该类栏目的dedecms调用方法比较简单,如下:

{dede:channel type=‘top‘ currentstyle="
<li class=‘thisclass‘><a href=‘~typelink~‘>~typename~</a> 
</li>"} 
<li><a href=‘[field:typeurl/]‘>[field:typename/]</a></li>
{/dede:channel}

 

注释(参数): typeid=‘0‘ 栏目ID; reid = ‘0‘ 上级栏目ID; row = ‘100‘ 调用栏目数;col = ‘1‘ 分多少列显示

(默认为单列);type = ‘son | sun‘ son表示下级栏目,self表示同级栏目,top顶级栏目; currentstyle = ‘‘ 应用样式"。

  这种方法会把后台的顶级栏目都调用出来,如果想有些栏目不被调用出来,可以加上参数typeid=‘所要调用栏目的

id’。对于调用指定的栏目可以用下面的标签:

{dede:type typeid=‘指定栏目的id’}
<a href="[field:typelink /]">[field:typename /]</a>
{/dede:type}

 

2. 带有二级子栏目的栏目的调用,这类网站用于信息分类比较多的网站,其样式图如下:

 

  这种栏目是比较常见的,其dedecms调用代码如下:

{dede:channelartlist typeid=‘1,2,3,6,7,10,8,11‘ row=‘10‘}    //typeid=‘顶级栏目的id’   
<li class="tab dropdown"><a  id="{dede:field name=‘id‘/}"  
href="{dede:field name=‘typeurl‘/}" class="tablink arwlink">
{dede:field name=‘typename‘/}</a>   
<ul class="subnav">      
{dede:channel type=‘son‘ noself=‘yes‘}     
<a href="[field:typelink/]">[field:typename/]</a>  
{/dede:channel}   
</ul>   
</li>     
{/dede:channelartlist}

 

 

对于没有子栏目的顶级栏目可以使用调用指定栏目的标签:

 

{dede:type typeid=‘指定栏目的id’}
<li>
<a href="[field:typelink /]">[field:typename /]</a>
</li>
{/dede:type}

 

 

 

这样可以实现上述栏目的调用。

  3.有三级子栏目的调用代码,这类导航适用于商城等,其样式图如下:

  对于这种栏目的调用代码如下:

 

<li>
<h3>
{dede:type typeid=‘2‘}<a href=‘[field:typelink/]‘ class="depth_1">
[field:typename/]</a>{/dede:type}
</h3>  //顶级栏目的调用                  
<ul class="children" style="display: none; "> {dede:channelartlist typeid=‘top‘  typeid=‘2‘}  
 //二级栏目和三级栏目的调用这里typeid=‘子栏目所属的顶级栏目的id‘                    
<li>
<h3 >
<a href=‘{dede:field name=‘typeurl‘/}‘ class="depth_2">
<span class="icon10"></span>{dede:field name=‘typename‘/}
</a>
</h3>                                
<ul>                                 
{dede:sql sql=‘Select * from dede_arctype where reid=~id~  ORDER BY id limit 0,20‘}
  //limit 起始三级栏目id  显示栏目的条数                                 
<li><a href="[field:typedir function=‘str_replace("{cmspath}","",@me)‘/]"  
class="depth_3">[field:typename/]</a>
</li>                                 
{/dede:sql}                                 
</ul>                   
 </li>                   
{/dede:channelartlist}                   
</ul>           
</li>

 

 

 

 

 这三类基本上包括了导航栏的调用方式,而且都经过测试可以放心使用。

 

 

 

 

 

 

 

 

 

 

以上是关于Axure中继器实现二级导航栏的主要内容,如果未能解决你的问题,请参考以下文章

axure中继器求和应该怎样操作

Axure中继器的使用

axure RP中继器新增排序没反应

axure--中继器

Axure中继器实现子表的展开和收缩

Axure中继器实现子表的展开和收缩(载入时展开子表)