如何顺利处理具有多个隐藏div的隐藏/显示队列

时间:2014-01-20 13:13:11

标签: jquery css jquery-ui html show-hide

我四处寻找,但没有完全像我所拥有的那样。

当我使用show方法滚动div下方或上方的下一个div时,它将跳转到当前活动的EndEo。我知道.stop(true,true)是这样做的原因,但是否则div不会出现在页面上的正确位置,进一步向左或在2或3个事件后完全停止显示。

当我停止悬停或悬停其他2个div中的1个时,我希望当前显示的div能够顺利地继续他们的隐藏行为。然后如果我在他们完成之前回到他们身边,那就回到演出行为。至少没有.stop似乎无法顺利实现这一目标

实施例: http://jsfiddle.net/JohnWeb/rBsLx/1/

到目前为止,这是我的脚本:

$(document).ready(function(){
    $('#why-pic').hover(function(){
        $('#why-text').stop(true, true).show("slide", {easing:"easeInCirc"}, 1000);
    }, function(){
    $('#why-text').stop(true, true).hide("slide", {easing:"easeInCirc"}, 1000);
    });
    $('#what-pic').hover(function(){
        $('#what-text').stop(true, true).show("slide", {easing:"easeInCirc"}, 1000);
    }, function(){
    $('#what-text').stop(true, true).hide("slide", {easing:"easeInCirc"}, 1000);
    });
    $('#how-pic').hover(function(){
        $('#how-text').stop(true, true).show("slide", {easing:"easeInCirc"}, 1000);
    }, function(){
        $('#how-text').stop(true, true).hide("slide", {easing:"easeInCirc"}, 1000);
    });
});

1 个答案:

答案 0 :(得分:0)

一个简单的stop()应该有效。无需2个真实参数。 show和hide方法的参数不正常。

$(document).ready(function () {
    var options = { easing: "easeInCirc", duration: 1000 };
    $('.div-display').hover(function () {
        $(this).find('.textbox').stop().show(options);
    }, function () {
        $(this).find('.textbox').stop().hide(options);
    });
});

http://jsfiddle.net/rBsLx/12/