[Javascript][Mootools]用渐进增强的方式开发选项卡(Tabs)(二)

在这一节里,我将对在上一节完成的基础上,对Tabs类进行扩展,加上自定义事件以及动画效果。

Mootools通过类的implements属性,实现类似于接口的功能,比如我们在Tabs类的implements属性加上Events,就可以让Tabs类获得Events类下的所有方法,其中的fireEvent方法就是让Tabs类获得了自定义事件的能力。

然后我在Tabs类下的showSection方法和hideSection方法内各加上一行代码:
this.fireEvent('onShow',[index,tab,section]);
this.fireEvent('onHide',[index,tab,section]);

这样,就可以在生成一个Tabs类的实例时,加上用户自定义的事件,代码如下:
Code

示例页中第一个例子即是,我通过自定义事件,得到当前显示隐藏的选项卡各是哪个,同时,我还给显示选项内容加上了动画效果。

虽然能通过自定义事件给选项卡加上动画效果,但是我想动画效果可能是经常需要实现的功能,因此,我对Tabs类下的showSection方法和hideSection方法进行了改写,这样,我们就可以在可选属性里设定是否通过动画来显示选项卡,而且,虽然我目前只做了一种动画,但是动画效果可以继续扩展,并通过可选属性来选择使用何种动画效果。

可选属性加上的属性是mvSH。实例代码如下:
Code

示例页第二个例子即是最终效果。

代码如下:
Code

按道理到这里,这节要实现的功能已经完成,不过上面的类可以通过Mootools类的implement方法,将代码改成可扩展的Tabs类来完成,而这么做的好处是,我们可以通过工作的需要来选择是简化版Tabs类,还是扩展后的Tabs类,这样做也可以在继续扩展动画效果的情况下,不需要改动原有的Tabs类。
Code
posted @ 2009-01-02 20:57  勤卓  阅读(449)  评论(0编辑  收藏  举报