【问题标题】:FadeOut, effect queue淡出,效果队列
【发布时间】:2016-02-11 00:07:45
【问题描述】:

我遇到了一个关于 jquery 中效果队列的小问题。 我试图实现的是让元素淡入与动画相同的起点 - 很容易。问题是当我想让它在动画结束时淡出,因为操作队列似乎不起作用。

https://jsfiddle.net/dpm3x4vw/
看看盒子是如何在动画开始的同时在持续时间 500 处淡入的。 我试图在动画结束时实现相反的效果

function animateC(targetElement) {
var targ = targetElement.width();
$(targetElement).fadeIn({queue:false, duration: 500 }, 'linear');
$(targetElement).animate({ left: 0 - targ }, 10000, 'linear');
// I wanna fadeOut in same style as the fadeIn aswell! 
}

【问题讨论】:

    标签: jquery queue fadein fadeout effect


    【解决方案1】:

    您可以通过添加父级并对其进行动画处理来实现此效果。这将使蓝色条在运动结束前 500 毫秒开始淡出:

    HTML:

    <div>
      <div id="test">
        <p>test</p>
      </div>
    </div>
    

    JavaScript:

    function animateC(targetElement) {
      var targ = targetElement.width();
    
      $(targetElement)
        .fadeIn({ queue: false, duration: 500 }, 'linear')
        .animate({ left: 500 - targ }, 10000, 'linear')
        .parent()
        .delay(9500)
        .fadeOut({ duration: 500 }, 'linear');
    }
    

    您实际上无法在单个元素上设置并行动画队列。一切要么立即执行,要么按顺序执行,包括延迟。但是没有理由不能同时为元素其父元素设置动画。

    【讨论】:

    • 问题是这会导致淡出在 .animate 结论时执行。正如我所说,手头的问题是在 .animate 的最后 500 毫秒执行淡出。
    • @RasmusHjorthLüdeking 看来我误解了你的问题。我更新了答案,以便它真正实现您正在寻找的淡出行为。
    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多