0

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

这是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");
  });
});
4

2 回答 2

4

delay仅适用于可以排队的动画,attr不排队,因此不受delay. 如果您想在动画结束时做某事,请将动作添加到animation回调中。

$(this).animate({opacity: 1}, 1000, function(){$(this).attr("src", "pic2.png")});
于 2013-03-15T09:34:52.043 回答
0

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

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

$("button").click(function() {
      $("div.first").slideUp(300).delay(800).fadeIn(400);
      $("div.second").slideUp(300).fadeIn(400);
    });</script>
于 2013-03-15T09:44:39.013 回答