【问题标题】:Jquery Slide Animation BehaviorJquery 幻灯片动画行为
【发布时间】:2013-02-03 16:19:57
【问题描述】:

我正在制作一个简单的滑出标签。

当鼠标悬停在“#tabFeature1”上时,此脚本会导致 div -“#slideout”滑入,并在鼠标滑出时滑出。

除了不想要的副作用外,一切正常。如果效果堆叠 - 所以每个 mouseover/mouseout 都是堆叠的。例如,如果用户快速将鼠标移入和移出 10 次,然后停止移动鼠标,动画将继续迭代 - 移入和移出 10 次。不理想的效果是动画不会堆叠。请让我知道这是否有意义。

$(document).ready(function () {
    $('#tabFeature1').mouseover(function () {
            $('#slideout').show("slide", { direction: "left" }, 1000);
        });

    $('#tabFeature1').mouseout(function () {
            $('#slideout').hide("slide", { direction: "left" }, 1000);
    });
});

【问题讨论】:

  • 这是预期的行为,因为鼠标事件总是会排队...

标签: jquery slide


【解决方案1】:

使用.is(':animated')检查动画是否仍在进行中,如果前一个完成则应用动画。

$(document).ready(function () {
    $('#tabFeature1').mouseover(function () {
            if (!$('#slideout').is(':animated')) {
                $('#slideout').show("slide", { direction: "left" }, 1000);
            }
        });

    $('#tabFeature1').mouseout(function () {
            if (!$('#slideout').is(':animated')) {
                $('#slideout').hide("slide", { direction: "left" }, 1000);
            }
    });
});

【讨论】:

  • 这最终成为了我的终极解决方案。这是一个简单的滑出式面板。 $('#tabFeature1').mouseover(function () { $('#slideout').stop().animate({left:'100px'},{queue:false,duration:500}); }); $('#tabFeature1').mouseout(function () { $('#slideout').stop().animate({left:'0px'},{queue:false,duration:500}); });
猜你喜欢
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 2015-10-03
  • 2015-04-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
相关资源
最近更新 更多