【问题标题】:fadein/fadeout issue, tried stop but does not work淡入/淡出问题,尝试停止但不起作用
【发布时间】:2012-01-06 10:21:03
【问题描述】:

所以我想做的就是淡出一个 div 并淡入另一个。当我悬停一个链接时,我想淡出 prev div 并淡入正确的 div。除非我将鼠标悬停在链接上太快,否则一切正常。当我悬停太快时,div 不会淡出。我尝试过使用 stop(),并在 stop 函数上尝试了不同的真假组合,但没有任何效果。如果我将淡入淡出计时器更改为 0,那么它可以工作。我的代码太多了,无法在这里粘贴,但基本上它不是简单的淡入/淡出。在调用淡入淡出函数之前,我还有一些其他事情要做

这是我的淡入淡出功能

var fadeEffect = function (a, b) {
    $(a).fadeOut(300, function () {
        $(b).fadeIn(300);
    });
} 

它是对象内部的私有函数。我尝试在 a 和/或 b 上使用 stop() ,但我仍然得到同样的结果。如果我将 300 更改为 0,它工作正常 有人有什么想法吗?

这里有简化版http://jsfiddle.net/LLMUX/9/

【问题讨论】:

  • 能否请您添加您的 HTML 或者更好地创建一个 jsfiddle.net 谢谢
  • 添加了小提琴,这是一个很棒的工具,谢谢分享
  • 你试过stop(true, true)fadeIn/fadeOut会在动画开始时保存当前的不透明度。
  • 试过了,但是不行,请看fiddle链接,代码很复杂,但是只要淡入淡出计时器为0就可以正常工作,但如果不是0,则出现问题
  • 查看这个问题的答案 - 我认为这是您需要的? -> stackoverflow.com/questions/5571110/…

标签: javascript jquery fadein fadeout


【解决方案1】:

我已经更新了你的 JSFiddle -> http://jsfiddle.net/manseuk/LLMUX/11/

我所做的是将停止添加到正在动画的 div 中 - 停止重复:

   $("#vehicleSelector .vehiclesList").bind({
       mouseenter: function(event) {
          $('#vehicleSlides div, #promoSlides div').stop(true,true); // stop any running animations
           event.stopPropagation();
           sControl.timerIsOn = false;
           showSecondary(this.id)
       },
       mouseleave: function(event) {
           $('#vehicleSlides div, #promoSlides div').stop(true,true); // stop any running animations
           event.stopPropagation();
           next();
       }
   });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多