【问题标题】:.delay() function doesn't work on attr() function [duplicate].delay() 函数不适用于 attr() 函数[重复]
【发布时间】:2013-03-15 09:32:21
【问题描述】:

我的网站中有一些图片,我想使用这段代码隐藏它们,更改显示的图片并将它们显示回来,但新图片会立即显示。我不知道该怎么办。

这是javascript:

$(document).ready(function() {
  $('.show').click(function() {
    $(this).removeClass("show").addClass("clickedShow");
    $('.show').animate({opacity: 0}, 1000);
    $(this).delay(1000).animate({opacity: 0}, 1000);

    $(this).animate({opacity: 1}, 1000).attr("src", "pic2.png");
    $('.show').delay(1000).animate({opacity: 1}, 1000).attr("src", "pic2.png");
  });
});

【问题讨论】:

标签: javascript jquery


【解决方案1】:

delay 仅适用于可以排队的动画,attr 不排队,因此它不受delay 的影响。如果您想在动画结束时执行某些操作,请将操作添加到 animation 回调。

$(this).animate({opacity: 1}, 1000, function(){$(this).attr("src", "pic2.png")});

【讨论】:

    【解决方案2】:

    .delay() 方法最适合在排队的 jQuery 效果之间进行延迟。因为它是有限的——例如,它不提供取消延迟的方法。

    因此,您可以尝试使用排队的 jQuery 效果并在它们之间使用 .delay(1000)。喜欢:

    $("button").click(function() {
          $("div.first").slideUp(300).delay(800).fadeIn(400);
          $("div.second").slideUp(300).fadeIn(400);
        });</script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 2011-04-01
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多