﻿//    版本V1.0
//    编写日期：2010-03-18
//    编写人：张美超
//    问题反馈:zhangmeichao@163.com
; (function ($) { 
          //开始插件，我的第一个插件定义插件名称为MyFunName
          $.fn.MarqueeFun=function(options)
          {
                //定义默认的图片宽度与速度
                var defaults={
                    //设置滚动方向 
                    direct:"left",
                    //设置LI的宽度
                    liwidth:"100",
                    //滚动速度
                     scrollSpeed:"20",
                    //设置CSS样式
                    float:"left"
                }
                //定义参数如果没有就为默认,有过有就覆盖原来的参数值
                var options=$.extend(defaults,options);
                //获取当前DIV
                var warp=$(this);
                //获取当前DIV下的第一个UL，getfirstul
                var getfirstul=warp.children().eq(0);
                //获取第一个UL下的所有LI
                var getli=getfirstul.children();


                //设置UL，LI的CSS相关样式
                getfirstul.css({position:"absolute"});
                getli.css({float:defaults.float});
                getli.css("list-style-type","none");
             
              
                //设置LI的宽度
                getli.each(function(){
                $(this).css({
                           width:defaults.liwidth                           
                    });
                });

             
                //获取LI的个数
                var lilength=getli.length;
              
                //var liwidth=lilength*(getli.eq(0).width());

                 if(defaults.direct=="top"||defaults.direct=="bottom")
                {
                      //获取LI的总高度，高度为单个LI的高度*LI的个数
                      var liheight=lilength*(getli.eq(0).height());
                      //设置UL的高度为LI高度度的2倍
                      getfirstul.css("height",2*liheight);
                }
                else
                {
                       //获取LI的总宽度，宽度为单个LI的宽度*LI的个数
                       var liwidth=lilength*(getli.eq(0).width());
                       //设置UL的宽度为宽度的2倍
                       getfirstul.css("width",2*liwidth);
                }

              
              

                //克隆所有LI并将LI插入到原来的LI下
                getfirstul.append(getli.clone());




                  //设置定时器，主要为滚动做准备
                var timer=null;
                //设置移动量
                var i=0;
                //开始滚动
                startScroll();
                //当鼠标经过就停止，出来就滚动
                getfirstul.hover(stopScroll,startScroll);
                //如果超级过原来的所有的li的总宽就恢复i为0
                
                function scroll()
                {
                    i++;
                    //i=i%liwidth;
                    if(defaults.direct=="top"||defaults.direct=="bottom")
                    {
                    i=i%liheight;
                    }
                    else
                    {
                        i=i%liwidth;
                    }
                    getfirstul.css(defaults.direct,-i);
                }
                //开始滚动有setInterval触发
                function startScroll(){
                      timer=setInterval(scroll,defaults.scrollSpeed);
                }
                //清除定时器
                function stopScroll()
                {
                    clearTimeout(timer);
                }
          }
    })(jQuery)
