﻿/** 垂直方向翻屏
 *
 *  $("#scrollDiv").Scroll({direction:"up",line:4,speed:500,timer:3000});
 *
 *
 *  <div id="scrollDiv">
 *  <ul>
 *      <li>这是公告标题的第一行</li>
 *      <li>这是公告标题的第二行</li>
 *      <li>这是公告标题的第三行</li>
 *      <li>这是公告标题的第四行</li>
 *      <li>这是公告标题的第五行</li>
 *      <li>这是公告标题的第六行</li>
 *      <li>这是公告标题的第七行</li>
 *      <li>这是公告标题的第八行</li>
 *  </ul>
 *  </div>
*/

(function($){
$.fn.extend({
    scrollY:function(opt,callback){
        this.css("overflow","hidden");
        //参数初始化
        if(!opt) var opt={};
        var direction=opt.direction?opt.direction:"up";
        var timerID;
        var _this=this.eq(0).find("ul:first");
        var lineH=_this.find("li:first").height(), //获取行高
        line=opt.line?parseInt(opt.line,10):parseInt(this.height()/lineH,10), //每次滚动的行数，默认为一屏，即父容器高度
        speed=opt.speed?parseInt(opt.speed,10):800; //卷动速度，数值越大，速度越慢（毫秒）
        timer=opt.timer?parseInt(opt.timer,10):5000; //滚动的时间间隔（毫秒）
        if(line==0) line=1;
        var upHeight=0-line*lineH;

        //自动播放
        var autoPlay = function(){
            if(timer)timerID = window.setInterval(function(){
                if(direction == "up"){
                    _this.animate({
                        marginTop:upHeight
                        },speed,function(){
                            for(i=1;i<=line;i++){
                                _this.find("li:first").appendTo(_this);
                        }
                        _this.css({marginTop:0});
                    });
                }else{
                    for(i=1;i<=line;i++){
                        _this.find("li:last").show().prependTo(_this);
                    }
                    _this.css({marginTop:upHeight});
                    _this.animate({
                        marginTop:0
                        },speed);
                }
            },timer);
        };
        
        //停止
        var autoStop = function(){
            if(timer)window.clearInterval(timerID);
        };
        
        //鼠标事件绑定
        _this.hover(autoStop,autoPlay).mouseout();
    }      
})
})(jQuery);
