【问题标题】:Jquery Cycle PluginjQuery 循环插件
【发布时间】:2009-11-14 12:54:05
【问题描述】:

我一直在使用 jquery 循环插件 (malsup.com/jquery/cycle),它的功能完全符合我的要求,只是它似乎无法将第一张幻灯片识别为第一张幻灯片。我正在使用 onAfter 函数来适当地打开和关闭下一个/上一个链接,并 显示第 1 页?但下一个链接在第 2 页上仍然存在 (当您希望出现上一个链接时)并且,虽然 页面计数正确,第 2 页显示为第 1 页,共 7 页相同 作为真正的第一页)。您可以在以下位置看到我的意思:

http://www.nottingham.ac.uk/~ttzelrn/ma-tesol/module1/unit1/index.php

div 的结构非常复杂,但我认为它是合理的,并且 我说,插件正在计算 div 好。

代码如下:

$(document).ready(function() {
      $('#cycle-content').cycle({
      fx:     'none',
      prev:   '#prev',
      next:   '#next',
      after:   onAfter,
      timeout: 0
      });

function onAfter(curr, next, opts) {
var index = opts.currSlide;
$('#prev')[index == 0 ? 'hide' : 'show']();
$('#next')[index == opts.slideCount - 1 ? 'hide' : 'show']();

var caption = 'Page ' + (opts.currSlide + 1) + ' of ' +
opts.slideCount;
$('#caption').html(caption);
}

});

如果能提供任何帮助,我将不胜感激。

马修

【问题讨论】:

    标签: jquery plugins cycle


    【解决方案1】:

    您没有在 after 回调中增加 currSlide。试试这样的:

    $(document).ready(function() {
          $('#cycle-content').cycle({
          fx:     'none',
          prev:   '#prev',
          next:   '#next',
          after:   onAfter,
          timeout: 0
          });
    });
    
    function onAfter(curr, next, opts) {
        var index = opts.currSlide;
        $('#prev')[index == 0 ? 'hide' : 'show']();
        $('#next')[index == opts.slideCount - 1 ? 'hide' : 'show']();
        opts.currSlide++;
        var caption = 'Page ' + (opts.currSlide) + ' of ' + opts.slideCount;
        $('#caption').html(caption);
    }
    

    【讨论】:

    • 非常感谢 - 不幸的是它不能解决问题。它现在跳过幻灯片 2 并导致所有幻灯片相互重叠。
    • 我还刚刚注意到您已将 onAfter 方法放在 document.ready 方法中。试试我在上面的编辑中所做的更改。
    • 再次感谢 Ambrosia - 我终于发现原始代码只有在 fx:(控制过渡效果)设置为“无”时才会失败。所有其他效果(scrollHorz、淡入淡出等)都可以完美运行。再次感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多