【问题标题】:Cycle2 Autostop not workingCycle2自动停止不工作
【发布时间】:2014-04-13 19:39:45
【问题描述】:

对于最近的一个项目,我们使用的是 Cycle2。我已经升级到最新版本。 我们正在使用 Sitecore 来呈现内容。无论我采用何种方法(如下),我都无法让自动停止功能发挥作用。每个幻灯片有 2-3 张幻灯片,我们希望它按以下模式移动:1-2-3-1。

我们是否按照这样的规则将其渲染为自动播放:

<ul class="<%# Sitecore.Context.PageMode.IsPageEditor ? String.Empty : "cycle-slideshow" %> interior" 
                data-cycle-speed="3000" 
                data-cycle-autostop="true"
                data-cycle-timeout="5000" 
                data-cycle-auto-height="container"
                data-cycle-slides="> li" >
                <sc:Placeholder  runat="server" ID="SlidePlaceholder" Key="SlidePlaceholder" /></ul>

或者如果我们让它在没有“循环幻灯片”类的 JS 中以编程方式播放:

$('#my-slideshow').cycle({
    speed: 3000,
    autostop: true,
    timeout: 5000,
    end: function() {
        $('#my-slideshow').cycle('stop');
    }
});
  • 我们正在正确加载 JQuery。
  • 在做了一些操作后,我尝试了自动停止的 'true' 和 '1' 研究功能。
  • 我们还使用 Carousel 和 Swipe Cycle2 库。
  • 我们正在同时加载以下库:fancybox 2.1.4、enquire、imagesloaded jquery.ba-resize、jquery.qtip、jquery.rwdImageMaps、Slimscroll 和 modernizer。
  • 正常循环。我们可以根据捕获视口的变化让它内联停止,但标准的自动停止不起作用。这是一个快速的 concole 日志捕获(在 IE、FF 和 Chrome 之间相同)
  • [cycle2] --c2 init-- jquery.cycle2.min.js:6
  • [cycle2] speed: 3000 (number) jquery.cycle2.min.js:6
  • [cycle2] autostop: true (boolean) jquery.cycle2.min.js:6
  • [cycle2] timeout: 5000 (number) jquery.cycle2.min.js:6
  • [cycle2] autoHeight: 容器(字符串)jquery.cycle2.min.js:6
  • [cycle2] 幻灯片:> li (string) jquery.cycle2.min.js:6
  • 它在带有静态内容的 Raw HTML 模式下展示了相同的行为
  • 此外,我已经通过 JS Lint 运行了所有与页面一起启动的 JS。

感谢任何帮助/建议。感谢您的宝贵时间。

【问题讨论】:

  • 所以它会循环,还是只是自动停止不起作用?任何 JavaScript 错误都是浏览器的开发控制台?它是否在“原始 HTML”模式下工作,即没有 Sitecore 内容的纯 HTML?

标签: javascript jquery sitecore jquery-cycle2


【解决方案1】:

假设您使用的是Cycle2 plugin by Malsup,那么documentation for the API 不包含名为autostop 的选项。也许您的意思是loop 选项?

循环

整数
0
自动前进幻灯片的次数 应该在终止之前循环。如果该值小于 1,则 幻灯片将连续循环播放。设置为 1 循环一次,等等。

所以要么:

 <ul ... data-cycle-loop="1" .. /></ul>

var $slideshow = $('#my-slideshow');
$slideshow.cycle({
    speed: 3000,
    loop: 1,
    timeout: 5000
});

// jump back to the first slide when loop has finished
// you might have to use setTimeout() to delay the transition back to the first slide
$slideshow.on('cycle-finished', function(event, opts) {
    $slideshow.cycle('goto', 0);
});

【讨论】:

  • 很快就会试用您的示例,但仅供参考:jquery.malsup.com/cycle/end.html
  • @Jeremy 那么您使用的是 Cycle(1) 还是 Cycle2?这些都是插件的不同版本,它们之间的 API 不同
  • 我们使用的是 Cycle2(最新版本)。我刚刚尝试了循环: 1. 它穿过幻灯片,1 > 2 > 3,然后停止。这几乎就在那里!我需要它仅在返回到幻灯片 1 时停止,而不是在系列中的最后一张幻灯片处停止。我将对此进行进一步调查,因为该解决方案非常有前途。
  • @Jeremy 我更新了代码示例,未经测试但希望对您有所帮助
  • 是的 - 这也是我刚刚发现的。非常感谢您的帮助。 $('#my-slideshow').on('cycle-finished', function (e, opts, API) { $('#my-slideshow').cycle('goto', 0); });
猜你喜欢
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多