lrtk.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /* =================================================
  2. //
  3. // jQuery Fixed Plugins 1.3.1
  4. // author :
  5. // Url:
  6. // Data : 2012-03-30
  7. //
  8. // 参数 : float --> 悬浮方向[left or right]
  9. // minStatue --> 最小状态,只有show_btn
  10. // skin --> 皮肤控制
  11. // durationTime --> 完成时间
  12. //
  13. // =================================================*/
  14. ;(function($){
  15. $.fn.fix = function(options){
  16. var defaults = {
  17. float : 'left',
  18. minStatue : false,
  19. skin : 'blue',
  20. durationTime : 1000 ,
  21. stylewidth:'220',
  22. spacingw:30,
  23. spacingh:40,
  24. close_btn:'.close_btn',
  25. show_btn:'.show_btn',
  26. side_list:'.side_list',
  27. close_btn_width:25,
  28. side_title:'.side_title',
  29. set_scrollsidebar:'.page_right_style',
  30. table_menu:'.table_menu_list',
  31. widgetbox:'.widget-box'
  32. }
  33. var options = $.extend(defaults, options);
  34. this.each(function(){
  35. //获取对象
  36. var thisBox = $(this),
  37. closeBtn = thisBox.find(options.close_btn ),
  38. showbtn = thisBox.find(options.show_btn ),
  39. sideContent = thisBox.find('.side_content'),
  40. sideList = thisBox.find(options.side_list),
  41. sidetitle = thisBox.find(options.side_title),
  42. scrollsidebar=thisBox.find(options.set_scrollsidebar),
  43. stylespacing=thisBox.find(options.table_menu);
  44. widget_box=thisBox.find(options.widgetbox);
  45. var defaultTop = thisBox.offset().top; //对象的默认top
  46. thisBox.css(options.float, 0);
  47. //thisBox.css('height',(thisBox.height()));
  48. if(options.minStatue){
  49. $(options.show_btn ).css("float", options.float);
  50. sideContent.css('width', 0);
  51. showbtn.css('width', (options.close_btn_width));
  52. thisBox.css('height',(thisBox.height()))-($(options.sideList).height());
  53. sideList.css('height',($(options.side_list).height()));
  54. }
  55. //皮肤控制
  56. if(options.skin) thisBox.addClass('side_'+options.skin);
  57. //核心scroll事件
  58. //$(window).bind("scroll",function(){
  59. // var offsetTop = defaultTop + $(window).clientHeight()+ "px";
  60. // showbtn.animate({
  61. // top: offsetTop
  62. // },
  63. // {
  64. // duration: options.durationTime,
  65. // queue: false //此动画将不进入动画队列
  66. // });
  67. // });
  68. //close事件
  69. closeBtn.bind("click",function(){
  70. sideContent.animate({width: '0px'},"fast").addClass('active');
  71. showbtn.stop(true, true).delay(300).animate({ width:+(options.close_btn_width)+'px'},"fast");
  72. sideList.css("display","none");
  73. sidetitle.css("display","none");
  74. showbtn.css("display","block")
  75. scrollsidebar.addClass("Widescreen")
  76. scrollsidebar.width($(window).width()-(options.spacingw));
  77. stylespacing.width($(window).width()-(options.spacingw)).addClass("Widescreen");
  78. sideList.css('height',-($(options.side_list).height()));
  79. //widget_box.css('height',height($(window).height())-($(options.side_list).height()));
  80. });
  81. //show事件
  82. showbtn.click(function() {
  83. $(this).animate({width: '0px',border:'1px solid #ddd'},"fast").css('display','none');
  84. sideContent.stop(true, true).delay(0).animate({ width:+(options.stylewidth)+'px'},"fast");
  85. sideList.css("display","block")
  86. sidetitle.css("display","block");
  87. scrollsidebar.removeClass("Widescreen")
  88. scrollsidebar.width($(window).width()-(options.stylewidth));
  89. stylespacing.width($(window).width()-(options.spacingh)).removeClass("Widescreen");
  90. sideList.css('height',145+($(options.side_list).height()));
  91. });
  92. }); //end this.each
  93. };
  94. })(jQuery);