sidebarscrolltrend.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. (function($){
  2. $.fn.extend({
  3. Scroll:function(opt,callback){
  4. //参数初始化
  5. if(!opt) var opt={};
  6. var _btnUp = $("#"+ opt.up);//Shawphy:向上按钮
  7. var _btnDown = $("#"+ opt.down);//Shawphy:向下按钮
  8. var timerID;
  9. var _this=this.eq(0).find("dl:first");
  10. var lineH=_this.find("dd:first").height(), //获取行高
  11. line=opt.line?parseInt(opt.line,10):parseInt(this.height()/lineH,10), //每次滚动的行数,默认为一屏,即父容器高度
  12. speed=opt.speed?parseInt(opt.speed,10):2000; //卷动速度,数值越大,速度越慢(毫秒)
  13. timer=opt.timer?parseInt(opt.timer,10):7000; //滚动的时间间隔(毫秒)
  14. if(line==0) line=1;
  15. var upHeight=0-line*lineH;
  16. //滚动函数
  17. var scrollUp=function(){
  18. _btnUp.unbind("click",scrollUp); //Shawphy:取消向上按钮的函数绑定
  19. _this.animate({
  20. marginTop:upHeight
  21. },speed,function(){
  22. for(i=1;i<=line;i++){
  23. _this.find("dd:first").appendTo(_this);
  24. }
  25. _this.css({marginTop:0});
  26. _btnUp.bind("click",scrollUp); //Shawphy:绑定向上按钮的点击事件
  27. });
  28. }
  29. //Shawphy:向下翻页函数
  30. var scrollDown=function(){
  31. _btnDown.unbind("click",scrollDown);
  32. for(i=1;i<=line;i++){
  33. _this.find("dd:last").show().prependTo(_this);
  34. }
  35. _this.css({marginTop:upHeight});
  36. _this.animate({
  37. marginTop:0
  38. },speed,function(){
  39. _btnDown.bind("click",scrollDown);
  40. });
  41. }
  42. //Shawphy:自动播放
  43. var autoPlay = function(){
  44. if(timer)timerID = window.setInterval(scrollUp,timer);
  45. };
  46. var autoStop = function(){
  47. if(timer)window.clearInterval(timerID);
  48. };
  49. //鼠标事件绑定
  50. _this.hover(autoStop,autoPlay).mouseout();
  51. _btnUp.css("cursor","pointer").click( scrollUp ).hover(autoStop,autoPlay);//Shawphy:向上向下鼠标事件绑定
  52. _btnDown.css("cursor","pointer").click( scrollDown ).hover(autoStop,autoPlay);
  53. }
  54. })
  55. })(jQuery);
  56. $(document).ready(function(){
  57. $("#trendScroll").Scroll({line:5,speed:200,timer:8000,up:"btn1",down:"btn2"});
  58. });