custom.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. function bx_menu_slide_inline_custom (sMenu, e, sPosition) {
  2. var eSlider = $(sMenu);
  3. var options = options || {};
  4. if ('undefined' == typeof(e))
  5. e = eSlider.data('data-control-btn');
  6. var eIcon = !e ? null : $(e).find('.sys-icon-a');
  7. var iRight = !e ? 0 : $(document).width() - $(e).offset().left - $(e).width();
  8. if ('#bx-sliding-menu-search' == sMenu)
  9. iRight = 0;
  10. var fPositionElement = function (oElement) {
  11. eSlider.css({
  12. position: 'absolute',
  13. top: oElement.outerHeight(true),
  14. right: iRight
  15. });
  16. };
  17. var fPositionBlock = function () {
  18. var eBlock = eSlider.parents('.bx-page-block-container');
  19. eSlider.css({
  20. position: 'absolute',
  21. top: eBlock.find('.bx-db-header').outerHeight(true),
  22. right: iRight
  23. //width: eBlock.width() TODO: Commited to test. Remove if everything is OK.
  24. });
  25. };
  26. var fPositionSite = function () {
  27. var eToolbar = $('#bx-toolbar');
  28. eSlider.css({
  29. position: 'fixed',
  30. top: eToolbar.outerHeight(true) + (typeof iToolbarSubmenuTopOffset != 'undefined' ? parseInt(iToolbarSubmenuTopOffset) : 0)+3,
  31. right: iRight
  32. });
  33. };
  34. var fClose = function () {
  35. if (eIcon && eIcon.length)
  36. (new Marka(eIcon[0])).set(eIcon.attr('data-icon-orig'));
  37. eSlider.slideUp()
  38. };
  39. var fOpen = function () {
  40. if (eIcon && eIcon.length) {
  41. eIcon.attr('data-icon-orig', eIcon.attr('data-icon'));
  42. (new Marka(eIcon[0])).set('times');
  43. }
  44. if(typeof sPosition == 'object')
  45. fPositionElement(sPosition);
  46. else if(typeof sPosition == 'string' && sPosition == 'block')
  47. fPositionBlock();
  48. else
  49. fPositionSite();
  50. eSlider.slideDown();
  51. eSlider.data('data-control-btn', e);
  52. };
  53. if ('undefined' == typeof(sPosition))
  54. sPosition = 'block';
  55. if (eSlider.is(':visible')) {
  56. fClose();
  57. $(document).off('click.bx-sliding-menu touchend.bx-sliding-menu');
  58. $(window).off('resize.bx-sliding-menu');
  59. }
  60. else {
  61. bx_menu_slide_close_all_opened();
  62. $(document).off('click.bx-sliding-menu touchend.bx-sliding-menu');
  63. $(window).off('resize.bx-sliding-menu');
  64. fOpen();
  65. eSlider.find('a').each(function () {
  66. $(this).off('click.bx-sliding-menu');
  67. $(this).on('click.bx-sliding-menu', function () {
  68. fClose();
  69. });
  70. });
  71. setTimeout(function () {
  72. var iWidthPrev = $(window).width();
  73. $(window).on('resize.bx-sliding-menu', function () {
  74. if ($(this).width() == iWidthPrev)
  75. return;
  76. iWidthPrev = $(this).width();
  77. bx_menu_slide_close_all_opened();
  78. });
  79. $(document).on('click.bx-sliding-menu touchend.bx-sliding-menu', function (event) {
  80. if ($(event.target).parents('.bx-sliding-menu, .bx-sliding-menu-main, .bx-popup-slide-wrapper, .bx-db-header').length || $(event.target).filter('.bx-sliding-menu-main, .bx-popup-slide-wrapper, .bx-db-header').length || e === event.target)
  81. event.stopPropagation();
  82. else
  83. bx_menu_slide_close_all_opened();
  84. });
  85. }, 10);
  86. }
  87. }
  88. $( document ).ready(function() {
  89. $( ".bx-btn" ).click(function() {
  90. var elm=$(this);
  91. elm.attr('bx-click-animating', true);
  92. setTimeout(function() { elm.attr('bx-click-animating', false);}, 1000);
  93. });
  94. bIsTablet = $('html').hasClass('bx-media-tablet');
  95. if (bIsTablet){
  96. $('#bx-sliding-menu-sys_site').find('.has-submenu').addClass('submenu-closed');
  97. }
  98. });
  99. function bx_menu_main_click (obj) {
  100. bIsTablet = $('html').hasClass('bx-media-tablet');
  101. if (bIsTablet){
  102. $(obj).parents('#bx-sliding-menu-sys_site').find('.has-submenu').addClass('submenu-closed');
  103. $(obj).parents('#bx-sliding-menu-sys_site').find('.bx-menu-floating-blocks-submenu').hide();
  104. if ($(obj).offset().top + $(obj).parents('li.has-submenu:first').find('.bx-menu-floating-blocks-submenu').height() + 10 > $(document).height()){
  105. var iT = $(document).height() - $(obj).offset().top - $(obj).parents('li.has-submenu:first').find('.bx-menu-floating-blocks-submenu').height() - 10;
  106. $(obj).parents('li.has-submenu:first').find('.bx-menu-floating-blocks-submenu').css({top: iT});
  107. }
  108. }
  109. if($(obj).parents('li.has-submenu:first').hasClass('submenu-closed')){
  110. $(obj).parents('li.has-submenu:first').find('.bx-menu-floating-blocks-submenu').hide();
  111. $(obj).parents('li.has-submenu:first').find('.bx-menu-floating-blocks-submenu').slideDown();
  112. }
  113. else{
  114. $(obj).parents('li.has-submenu:first').find('.bx-menu-floating-blocks-submenu').slideUp();
  115. }
  116. $(obj).parents('li.has-submenu:first').toggleClass('submenu-closed');
  117. }