fontscroll.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. +-------------------------------------------------------------------
  3. * jQuery FontScroll - 文字行向上滚动插件 - http://java2.sinaapp.com
  4. +-------------------------------------------------------------------
  5. * @version 1.0.0 beta
  6. * @since 2014.06.12
  7. * @author kongzhim <kongzhim@163.com> <http://java2.sinaapp.com>
  8. * @github http://git.oschina.net/kzm/FontScroll
  9. +-------------------------------------------------------------------
  10. */
  11. (function($){
  12. $.fn.FontScroll = function(options){
  13. var d = {time: 3000,s: 'fontColor',num: 1}
  14. var o = $.extend(d,options);
  15. this.children('ul').addClass('line');
  16. var _con = $('.line').eq(0);
  17. var _conH = _con.height(); //滚动总高度
  18. var _conChildH = _con.children().eq(0).height();//一次滚动高度
  19. var _temp = _conChildH; //临时变量
  20. var _time = d.time; //滚动间隔
  21. var _s = d.s; //滚动间隔
  22. _con.clone().insertAfter(_con);//初始化克隆
  23. //样式控制
  24. var num = d.num;
  25. var _p = this.find('li');
  26. var allNum = _p.length;
  27. _p.eq(num).addClass(_s);
  28. var timeID = setInterval(Up,_time);
  29. this.hover(function(){clearInterval(timeID)},function(){timeID = setInterval(Up,_time);});
  30. function Up(){
  31. _con.animate({marginTop: '-'+_conChildH});
  32. //样式控制
  33. _p.removeClass(_s);
  34. num += 1;
  35. _p.eq(num).addClass(_s);
  36. if(_conH == _conChildH){
  37. _con.animate({marginTop: '-'+_conChildH},"normal",over);
  38. } else {
  39. _conChildH += _temp;
  40. }
  41. }
  42. function over(){
  43. _con.attr("style",'margin-top:0');
  44. _conChildH = _temp;
  45. num = 1;
  46. _p.removeClass(_s);
  47. _p.eq(num).addClass(_s);
  48. }
  49. }
  50. })(jQuery);