0

我这里有滑块。当它是 2 张或更多照片时,效果很好。但是当只有一张照片时,它仍然在滑动。如何使滑块不隐藏和显示一张图像?

  (function($){
        $.fn.MySlider = function(interval) {
            var slides;
            var cnt;
            var amount;
            var i;

            function run() {
                // hiding previous image and showing next
                $(slides[i]).fadeOut(1000);
                i++;
                if (i >= amount) i = 0;
                $(slides[i]).fadeIn(1000);

                // updating counter
                cnt.text(i+1+' / '+amount);

                // loop
                setTimeout(run, interval);
            }

            slides = $('#my_slider').children();
            cnt = $('#counter');
            amount = slides.length;
            i=0;

            // updating counter
            cnt.text(i+1+' / '+amount);

            setTimeout(run, interval);
        };
    })(jQuery);
4

5 回答 5

1

你为什么不通过替换来检查数量是否大于一

setTimeout(run, interval);

if (amount > 1) {
    setTimeout(run, interval);
}

?

于 2013-04-02T11:57:43.590 回答
1

简单的答案是当数量大于 1 时不运行 setTimeout 部分。我相信还有更多。也许你可以在 jsFiddle 中加载它

if(amount > 1)
setTimeout(run, interval);
于 2013-04-02T11:57:50.737 回答
1

您应该在开始幻灯片之前检查图像计数。

将代码更改为:

if (amount>1){
setTimeout(run, interval)
}
于 2013-04-02T11:57:52.420 回答
1

将整个函数包装在 if 语句中以检查是否有多个图像。

if ( $('#my_slider').children().length > 1 ){
    //run function
}
于 2013-04-02T11:59:03.877 回答
1

我要做的是检查图像的数量是否为 1 或更多,并在此基础上运行您的 Slider 方法或仅将单个图像绑定到 div 元素。

于 2013-04-02T11:59:36.840 回答