﻿/*
功能：Jquery无缝滚动插件zhw.scroll-1.2.js
作者：leozhang
注意：暂只支持div下ul li的滚动
交流：xandchd_kane@163.com
*/
jQuery.extend({
    Scroll: function(settings) {
        //初始化参数
        var config = $.extend({
            scrollValue: "",
            stepWidth: 100, 					// 滚动步长
            waitTime: 4000, 					// 间歇时间
            animateTime: 500,       			// 滚动效果时间,理论上应该比间歇时间短
            inner: "",                          // 滚动对象
            left: "",                           // 左点击对象
            right: ""                           // 右点击对象
        }, settings);

        //初始化
        for (var i = 0; i < config.scrollValue.length; i++) {
            $(config.inner + " ul").append(config.scrollValue[i]);
        }
        var flag = setInterval(AutoScroll, parseInt(config.waitTime));
        //左滚
        $(config.left).click(function() { AutoScroll(); });
        //右滚
        $(config.right).click(function() { RightScroll(); });
        //悬停
        $("" + config.left + "," + config.right + "," + config.inner + "").hover(function() { clearInterval(flag) }, function() {
            flag = setInterval(AutoScroll, parseInt(config.waitTime));
        });
        function AutoScroll() {
            $(config.inner).stop().animate({ "margin-left": 0 - config.stepWidth }, config.animateTime, function() {
                $(config.inner + " ul").html(""); //拼装被筛选出去的对象
                for (var i = 0; i < config.scrollValue.length; i++) {
                    if (i > 0) {
                        $(config.inner + " ul").append(config.scrollValue[i]);
                    }
                }
                $(config.inner + " ul").append(config.scrollValue[0]);
                var k = $.grep(config.scrollValue, function(i, j) { return j > 0; });
                var temp = $.grep(config.scrollValue, function(i, j) { return j > 0; }, true);
                config.scrollValue = k.concat(temp);
                $(config.inner).css("margin-left", 0); //初始化marginleft
            });
        }
        function RightScroll() {
            //向右需要先拼装再移动
            var k = $.grep(config.scrollValue, function(i, j) { return j < config.scrollValue.length - 1; }); //筛选
            var temp = $.grep(config.scrollValue, function(i, j) { return j < config.scrollValue.length - 1; }, true); //筛选
            config.scrollValue = temp.concat(k);
            $(config.inner + " ul").html(""); //.append(k).append(temp); //拼装被筛选出去的对象
            
            $(config.inner + " ul").append(config.scrollValue[0]);
            for (var i = 0; i < config.scrollValue.length; i++) {
                if (i > 0) {
                    $(config.inner + " ul").append(config.scrollValue[i]);
                }
            }
            $(config.inner).css("margin-left", -config.stepWidth);
            $(config.inner).stop().animate({ "margin-left": 0 }, config.animateTime);
        }
    }
});
