如何在OnsliderAfter上清除Bxslider中的超时

How to clear the Timeout in Bxslider on OnsliderAfter

我有一个bxslider和Onslide之后

onSlideAfter: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
      setTimeout(function() {
        jQuery(".active-slide img.drawing_layer_one").animate({ opacity: 1}, 500);
    }, 150);
   setTimeout(function() {
        jQuery(".active-slide img.drawing_layer_two").animate({ opacity: 1}, 600);
    }, 250);
}

因此,我保持动画发生的顺序,并且它仅在滑块第一次加载时对滑块加载起作用。 Onslideafter 它不能正常工作,我认为原因可能是时间没有清除。那么我如何在每次 OnSlideAfter 时清除此超时,以便动画将以正确的顺序依次发生?

您需要先声明一个全局变量,然后给它赋值setTimeout。

var myTimeout1;
var myTimeout2;
// Code
onSlideAfter: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
  myTimeout1 = setTimeout(function() {
      jQuery(".active-slide img.drawing_layer_one").animate({ opacity: 1}, 500);
  }, 150);
  myTimeout2 = setTimeout(function() {
      jQuery(".active-slide img.drawing_layer_two").animate({ opacity: 1}, 600);
  }, 250);
}

要清除超时,你必须使用这个:

clearTimeout(myTimeout1);
clearTimeout(myTimeout2);