0

我对jQuery Lavalamp 插件有疑问。它与单级菜单完美配合,但在添加下拉菜单后它会有点丢失。这就是我的意思:http ://screenr.com/0fS 。

当然,我想要实现的是当用户将鼠标悬停在子项目上时,lavalamp 背景留在投资组合项目上。

我想这是稍微改变插件的问题,所以这里是插件的完整代码。所需要的只是一种简单的方法,使 lavalamp 在<li>的孩子悬停时停止在当前阶段,然后恢复正常工作。这是完整的插件代码供参考!

(function($) {
$.fn.lavaLamp = function(o) {
o = $.extend({ fx: "linear", speed: 500, click: function(){} }, o || {});

return this.each(function() {
    var me = $(this), noop = function(){},
        $back = $('<li class="back"><div class="left"></div></li>').appendTo(me),
        $li = $("li", this), curr = $("li.current", this)[0] || $($li[0]).addClass("current")[0];

    $li.not(".back").hover(function() {
        move(this);
    }, noop);

    $(this).hover(noop, function() {
        move(curr);
    });

    $li.click(function(e) {
        setCurr(this);
        return o.click.apply(this, [e, this]);
    });

    setCurr(curr);

    function setCurr(el) {
        $back.css({ "left": el.offsetLeft+"px", "width": el.offsetWidth+"px" });
        curr = el;
    };

    function move(el) {
        $back.each(function() {
            $(this).dequeue(); }
        ).animate({
            width: el.offsetWidth,
            left: el.offsetLeft
        }, o.speed, o.fx);
    };

});
};
})(jQuery);`

提前致谢。

4

2 回答 2

1

解决此问题的方法是将 lavalamp 中的 hover() 更改为 mouseover,如下页所示。

http://hekimian-williams.com/?p=146

于 2010-07-23T09:40:57.710 回答
0

我在顶级 li 中添加了额外的类并更新了 js:

$li = $("li.top-level-item", this),
于 2015-10-24T08:31:05.407 回答