如何在Mootools下拉菜单脚本中添加.delay

时间:2013-07-21 10:07:58

标签: drop-down-menu mootools delay

我有使用Rockettheme RokNavMenu模块的Joomla 2.5站点进行下拉导航。这是一个伟大的&基于Mootools的免费模块有很多选项,但它没有延迟下拉子项目显示的选项。问题是下拉导航不在页面顶部,许多用户在将鼠标光标悬停在此元素上时会意外触发下拉列表。

所以我尝试在下拉菜单JS代码中的各个地方添加.delay(),但脚本非常复杂,我没有成功。

你可以在这里看到fusion.source.js(直接链接到js文件):http://bit.ly/12UHbAX

使用以下代码触发菜单选项:

window.addEvent('domready', function() {
    new Fusion('ul.menutop', {
        pill: 0,
        effect: 'slide and fade',
        opacity:  1,
        hideDelay:  250,
        centered:  0,
        tweakInitial: {'x': -8, 'y': -10},
        tweakSubsequent: {'x':  -8, 'y':  -11},
        tweakSizes: {'width': 18, 'height': 20},
        menuFx: {duration:  300, transition: Fx.Transitions.Circ.easeOut},
        pillFx: {duration:  400, transition: Fx.Transitions.Back.easeOut}
    });
});

我非常感谢这方面的帮助,我在stackoverflow.com上阅读了很多主题,但我发现的所有解决方案都需要大量重写JS代码。

此致

1 个答案:

答案 0 :(得分:1)

要做你想做的事情,我建议对脚本(fusion .js文件)和CSS修复进行一些更改。如果你能找到并解决这个问题,请告诉我。

第一 - 您要找的是:

this.myEffect.start().chain(function (e) {
    this.start.delay(100, this)
}).start({
    "margin-top": 0,
    opacity: this.options.opacity
}).chain(function () {
    this.showSubMenuComplete();
}.bind(this));

这是else声明中发布脚本的第684行。

第二次 - 脚本没有为此延迟做好准备,因此.fusion-submenu-wrapper CSS中有一个必须修复的边框阴影。

3rd - 例如,将hideDelay替换为较短的值为500。发布脚本的第21行。

第4次(最后但并非最不重要!) - 将选项链接更改为链。发布脚本的第226行。