随机图像使用s3slider

时间:2011-08-30 18:14:10

标签: jquery jquery-ui

我正在尝试使用我下载的这个插件随机显示图像。 (s3slider)

以下是创作者代码

    (function($){  

    $.fn.s3Slider = function(vars) {       

        var element     = this;
        var timeOut     = (vars.timeOut != undefined) ? vars.timeOut : 4000;
        var current     = null;
        var timeOutFn   = null;
        var faderStat   = true;
        var mOver       = false;
        var items       = $("#" + element[0].id + "Content ." + element[0].id + "Image");
        var itemsSpan   = $("#" + element[0].id + "Content ." + element[0].id + "Image span");

        items.each(function(i) {

            $(items[i]).mouseover(function() {
               mOver = true;
            });

            $(items[i]).mouseout(function() {
                mOver   = false;
                fadeElement(true);
            });

        });

        var fadeElement = function(isMouseOut) {
            var thisTimeOut = (isMouseOut) ? (timeOut/2) : timeOut;
            thisTimeOut = (faderStat) ? 10 : thisTimeOut;
            if(items.length > 0) {
                timeOutFn = setTimeout(makeSlider, thisTimeOut);
            } else {
                console.log("Poof..");
            }
        }

        var makeSlider = function() {
            current = (current != null) ? current : items[(items.length-1)];
            var currNo      = jQuery.inArray(current, items) + 1
            currNo = (currNo == items.length) ? 0 : (currNo - 1);
            var newMargin   = $(element).width() * currNo;
            if(faderStat == true) {
                if(!mOver) {
                    $(items[currNo]).fadeIn((timeOut/6), function() {
                        if($(itemsSpan[currNo]).css('bottom') == 0) {
                            $(itemsSpan[currNo]).slideUp((timeOut/6), function() {
                                faderStat = false;
                                current = items[currNo];
                                if(!mOver) {
                                    fadeElement(false);
                                }
                            });
                        } else {
                            $(itemsSpan[currNo]).slideDown((timeOut/6), function() {
                                faderStat = false;
                                current = items[currNo];
                                if(!mOver) {
                                    fadeElement(false);
                                }
                            });
                        }
                    });
                }
            } else {
                if(!mOver) {
                    if($(itemsSpan[currNo]).css('bottom') == 0) {
                        $(itemsSpan[currNo]).slideDown((timeOut/6), function() {
                            $(items[currNo]).fadeOut((timeOut/6), function() {
                                faderStat = true;
                                current = items[(currNo+1)];
                                if(!mOver) {
                                    fadeElement(false);
                                }
                            });
                        });
                    } else {
                        $(itemsSpan[currNo]).slideUp((timeOut/6), function() {
                        $(items[currNo]).fadeOut((timeOut/6), function() {
                                faderStat = true;
                                current = items[(currNo+1)];
                                if(!mOver) {
                                    fadeElement(false);
                                }
                            });
                        });
                    }
                }
            }
        }

        makeSlider();

    };  

})(jQuery);  

我在解雇这个js文件时所做的就是这个代码在我的标题中....现在我将如何随机化我的所有图像?

 <script type="text/javascript">
$(document).ready(function() {
   $('#s3slider').s3Slider({ 
      timeOut: 4000 
   });
});
</script>

任何和所有帮助都是值得赞赏的。

2 个答案:

答案 0 :(得分:1)

或者更简单的方法......

替换s3slider.js的第50行

current = (current != null) ? current : items[(items.length-1)];

有了这个:

current = (current != null) ? current : items[(Math.floor(Math.random()*(items.length)))];

中提琴!

答案 1 :(得分:0)

对于随机,如果页面是动态的,您可以在服务器端随机输出它们,或者我使用数组shuffle插件。

(function ($) { $.shuffle = function (arr) { for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x); return arr; } })(jQuery);

输入

var imageArr = ["image1.jpg", "image2.jpg", ...etc];
imageArr = $.shuffle(imageArr);

然后将数组输出到s3slider

for (var i = 0; i < imageArr.length; i++) {
    $('#s3SliderContent').append("<li><img src='/images/" + imageArr[i] + "'></li>");
}