1. 程式人生 > >JQuery-跑馬燈(文字無縫向上翻動-封裝)

JQuery-跑馬燈(文字無縫向上翻動-封裝)

(function($){
    $.fn.extend({
        "slideUp":function(value){
            
            var docthis = this;
            //預設引數
            value=$.extend({
                 "li_h":"30",
                 "time":2000,
                 "movetime":1000
            },value)
            
            //向上滑動動畫
            function autoani(){
                $("li:first",docthis).animate({"margin-top":-value.li_h},value.movetime,function(){
                    $(this).css("margin-top",0).appendTo(".line");
                })
            }
            
            //自動間隔時間向上滑動
            var anifun = setInterval(autoani,value.time);
            
            //懸停時停止滑動,離開時繼續執行
            $(docthis).hover(function(){
                clearInterval(anifun);            //清除自動滑動動畫
            },function(){
                setInterval(autoani,value.time);    //繼續執行動畫
            })
        }    
    })
})(jQuery)

主要思路:

  滑動動畫,就是改變元素的位置,要改變元素的位置有兩種方法,一種改變left,top屬性(相對定位和絕對定位),還有一種,就是現在這裡用到的,改變margin的值。

  上例中動畫過程:

    1.設定要改變margin-top的值;

    2.用animate方法改變第一個LI的margin-top的值為-30(負值會向上移動);

    3.在動畫完成之後,回撥函式內,把當前的第一個LI的margin-top改變為"0"

    4.把當前這第一個LI移動到所有LI的最後一個。(實現無縫)