JQuery-跑马灯,文字无缝向上翻动-封装

转载自他人:https://blog.csdn.net/z69183787/article/details/12857587

  1. (function($){

  2. $.fn.extend({

  3. "slideUp":function(value){

  4. var docthis = this;

  5. //默认参数

  6. value=$.extend({

  7. "li_h":"30",

  8. "time":2000,

  9. "movetime":1000

  10. },value)

  11. //向上滑动动画

  12. function autoani(){

  13. $("li:first",docthis).animate({"margin-top":-value.li_h},value.movetime,function(){

  14. $(this).css("margin-top",0).appendTo(".line");

  15. })

  16. }

  17. //自动间隔时间向上滑动

  18. var anifun = setInterval(autoani,value.time);

  19. //悬停时停止滑动,离开时继续执行

  20. $(docthis).hover(function(){

  21. clearInterval(anifun); //清除自动滑动动画

  22. },function(){

  23. setInterval(autoani,value.time); //继续执行动画

  24. })

  25. }

  26. })

  27. })(jQuery)

主要思路:

  滑动动画,就是改变元素的位置,要改变元素的位置有两种方法,一种改变left,top属性(相对定位和绝对定位),还有一种,就是现在这里用到的,改变margin的值。

  上例中动画过程:

    1.设置要改变margin-top的值;

    2.用animate方法改变第一个LI的margin-top的值为-30(负值会向上移动);

    3.在动画完成之后,回调函数内,把当前的第一个LI的margin-top改变为"0"

    4.把当前这第一个LI移动到所有LI的最后一个。(实现无缝)