main.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. $(function() {
  2. var siteSticky = function() {
  3. $(".js-sticky-header").sticky({topSpacing:0});
  4. };
  5. siteSticky();
  6. var siteMenuClone = function() {
  7. $('.js-clone-nav').each(function() {
  8. var $this = $(this);
  9. $this.clone().attr('class', 'site-nav-wrap').appendTo('.site-mobile-menu-body');
  10. });
  11. setTimeout(function() {
  12. var counter = 0;
  13. $('.site-mobile-menu .has-children').each(function(){
  14. var $this = $(this);
  15. $this.prepend('<span class="arrow-collapse collapsed">');
  16. $this.find('.arrow-collapse').attr({
  17. 'data-toggle' : 'collapse',
  18. 'data-target' : '#collapseItem' + counter,
  19. });
  20. $this.find('> ul').attr({
  21. 'class' : 'collapse',
  22. 'id' : 'collapseItem' + counter,
  23. });
  24. counter++;
  25. });
  26. }, 1000);
  27. $('body').on('click', '.arrow-collapse', function(e) {
  28. var $this = $(this);
  29. if ( $this.closest('li').find('.collapse').hasClass('show') ) {
  30. $this.removeClass('active');
  31. } else {
  32. $this.addClass('active');
  33. }
  34. e.preventDefault();
  35. });
  36. $(window).resize(function() {
  37. var $this = $(this),
  38. w = $this.width();
  39. if ( w > 768 ) {
  40. if ( $('body').hasClass('offcanvas-menu') ) {
  41. $('body').removeClass('offcanvas-menu');
  42. }
  43. }
  44. })
  45. $('body').on('click', '.js-menu-toggle', function(e) {
  46. var $this = $(this);
  47. e.preventDefault();
  48. if ( $('body').hasClass('offcanvas-menu') ) {
  49. $('body').removeClass('offcanvas-menu');
  50. $this.removeClass('active');
  51. } else {
  52. $('body').addClass('offcanvas-menu');
  53. $this.addClass('active');
  54. }
  55. })
  56. // click outisde offcanvas
  57. $(document).mouseup(function(e) {
  58. var container = $(".site-mobile-menu");
  59. if (!container.is(e.target) && container.has(e.target).length === 0) {
  60. if ( $('body').hasClass('offcanvas-menu') ) {
  61. $('body').removeClass('offcanvas-menu');
  62. }
  63. }
  64. });
  65. };
  66. siteMenuClone();
  67. });