1

我正在使用 Superslides - jQuery 的全屏滑块。我的问题是,每当我单击滑块导航时,自动播放都不会重置。您可以在下面看到我的设置,因为您可以看到播放设置为 10000 毫秒。但是,当我单击导航(下一张幻灯片)时,播放计时器仍在运行。这意味着自动播放每 1000 毫秒重置一次,而不是在每张幻灯片上。你可以看到我现在拥有的功能:

 Superslides = function(el, options) {
   this.options = $.extend({
    play: 10000,
    animation_speed: 600,
    animation_easing: 'swing',
    animation: 'slide',
    inherit_width_from: window,
    inherit_height_from: window,
    pagination: true,
    hashchange: false,
    scrollable: true,
    elements: {
      preserve: '.preserve',
      nav: '.slides-navigation',
      container: '.slides-container',
      pagination: '.slides-pagination'
    }
  }, options);

任何想法如何在每张新幻灯片上重置“播放:10000”。

4

1 回答 1

0

我知道这是一个老问题,但我最近遇到了同样的问题,并认为我会分享我认为为我解决的问题,以防其他人遇到它。

在 jquery.superslides.js 文件中,列出了以下代码来控制滑块的导航箭头:

that.$el.on('click', that.options.elements.nav + " a", function(e) {
  e.preventDefault();

  that.stop();
  if ($(this).hasClass('next')) {
    that.animate('next', function() {
      that.start();
    });
  } else {
    that.animate('prev', function() {
      that.start();
    });
  }
});

所以我的理解是,单击箭头永远不会启动“停止”,这意味着自动播放不会停止,因此不会重置。您可以尝试两种选择来解决这个问题。

选项 1 是当您单击下一个(或上一个)箭头而不是自动播放时,让幻灯片完全停止。通过改变来做到这一点

that.start();

that.stop();

选项 2 是首先调用停止,然后在单击箭头时调用开始。这应该强制自动播放功能将计时器重置为您设置的 10000 毫秒。为此,您只需添加:

that.stop();

在每个之前

that.start();
于 2015-10-09T16:41:47.240 回答