Javascript 在下面的代码中,如何添加setTimeout来延迟淡入淡出的动画?

Javascript 在下面的代码中,如何添加setTimeout来延迟淡入淡出的动画?,javascript,jquery,css,Javascript,Jquery,Css,我使用以下命令在悬停上淡入淡出元素: $(".hidden").hover(function() { $(this).animate({ opacity: 1 }); }, function() { $(this).animate({ opacity: 0 }); }); 我想在不透明度1和不透明度0之间添加一个延迟(稍等片刻,然后淡出元素) 我如何才能做到这一点?这将在淡出前延迟1秒。您需要存储对$(this)的引用,因为在setTimeout中this不再是

我使用以下命令在
悬停
上淡入淡出元素:

$(".hidden").hover(function() {
  $(this).animate({
    opacity: 1
  });
}, function() {
  $(this).animate({
    opacity: 0
  });
});
我想在不透明度
1
和不透明度
0
之间添加一个延迟(稍等片刻,然后淡出元素)


我如何才能做到这一点?

这将在淡出前延迟1秒。您需要存储对$(this)的引用,因为在setTimeout中this不再是DOM元素

$(".hidden").hover(function() {
  $(this).animate({
    opacity: 1
  });
}, function() {
  var _this = $(this);
  setTimeout(function (){
    _this.animate({
      opacity:0
    });
  },1000)

});
$(".hidden").hover(function() {
  $(this).animate({
    opacity: 1
  });
}, function() {
  var that = $(this);
  setTimeout(function() {
      $(this).animate({
        opacity: 0
      });
  }, 1000);
});

这将在淡出前延迟1秒。您需要存储对$(this)的引用,因为在setTimeout中this不再是DOM元素

$(".hidden").hover(function() {
  $(this).animate({
    opacity: 1
  });
}, function() {
  var that = $(this);
  setTimeout(function() {
      $(this).animate({
        opacity: 0
      });
  }, 1000);
});
Yuu可以使用.delay()函数

您可以使用.delay()函数


您想只使用JS来完成此任务吗?@Sprottenwels是的,
setTimeout
@alexchenco在第一次动画回调中添加它怎么样?您已经得到了答案。在
setTimeout()
中包装对
animate
的第二次调用。不过,我想指出的是,这也可以通过CSS关键帧轻松完成。你想只使用JS来完成吗?@Sprottenwels是的,
setTimeout
@alexchenco在第一次动画回调中添加它怎么样?你已经得到了答案。在
setTimeout()
中包装对
animate
的第二次调用。我想指出,这也可以通过CSS关键帧轻松实现。