一个设计Axure高保真导航组件的思路
高保证导航组件需要满足的需求/效果,以下图为例:
1.选中的一级导航,对底色做改变(表示选中)
2.选中的二级导航,字体颜色改变(表示选中)
3.点击二级导航,跳转到对应页面,且跳转之后,上述1、2效果不会被充值。
最难的就是“跳转之后效果1、2不重置”。
1.思路一:
1.1 绘图:
一级导航:图标、文字、背景色块组成的分组
二级导航:动态面板,一个一级导航项目,对应一个动态面板的状态
页面内容:用框架,点击导航,只改变页面框架内的内容,这样的话,就不会存在页面跳转后一、二级导航的选中效果被重置的难题了
1.2 效果:
(1)所有一级导航“背景色块”编组
(2)通过一级导航的点击事件,切换一级导航“背景色块”的选中/未选中状态。
(3)通过一级导航“背景色块”选中状态改变事件,切换一级导航项目选中效果(背景色块变色)和二级导航动态面板的状态;
(4)所有二级导航“背景色块”编组。通过二级导航的点击事件,切换二级导航项目的选中效果(从而改变文字变色)和跳转效果。
(5)页面内容:用框架,点击导航,只改变页面框架内的内容,这样的话,就不会存在页面跳转后一、二级导航的选中效果被重置的难题了
2.思路二:
2.1 绘图,同思路一
2.2 效果:
大致思路,同思路一,这里需要解决的是页面跳转之后,页面会重新加载,如果保证一、二级导航的选中效果不被充值,以下是解决方法。
(1)设置一个全局变量nav,用于传递页面名称PageName,操作位置:项目-全局变量
(2)在具体的页面,当页面加载时,把页面名称赋值给nav全局参数。
(3)以下是母版,内容是页面导航。每个页面导航项目加载时,判断导航名称是否等同于nav参数(也就是页面名称),如果是,则选中,如果不是则不选中。通过选中/不选中事件,控制导航项目的选中效果(底色改变或文字颜色改变)
这里面的关键点:页面加载事件先于组件加载事件执行。
上述思路可以用于二级导航。那么一级导航呢?
(1)也是用一个全局参数传递数据
(2)一级导航被选中(或一级导航的背景色块被选中)的时候,把一级导航的名称传入全局参数。一级导航的名称建议从页面的文字组件获取,而不是手写,这样的话,做出来的导航可移植性更强。
(3)页面跳转之后重新加载页面,一级导航的每个项目加载的时候,都拿自己的名称与全局参数做比较,如果相同,则呈现一级导航的选中效果。