Header.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <template>
  2. <header class="site-header site-header__header-one">
  3. <nav class="navbar navbar-expand-lg navbar-light header-navigation stricky">
  4. <div class="container clearfix">
  5. <!-- Brand and toggle get grouped for better mobile display -->
  6. <div class="logo-box clearfix">
  7. <a class="navbar-brand" href="/">
  8. <img src="/assets/images/resources/logo-dark.png" class="main-logo" width="119" alt="Awesome Image" />
  9. </a>
  10. <button class="menu-toggler" data-target=".main-navigation">
  11. <span class="fa fa-bars"></span>
  12. </button>
  13. </div>
  14. <!-- Collect the nav links, forms, and other content for toggling -->
  15. <div class="main-navigation">
  16. <ul class=" one-page-scroll-menu navigation-box">
  17. <li class="current scrollToLink">
  18. <a href="#banner">主页</a>
  19. </li>
  20. <li class="scrollToLink">
  21. <a href="#features">网络赋能</a>
  22. <!-- </li>
  23. <li class="scrollToLink">
  24. <a href="#calltoactiontwo">智慧门店</a>
  25. </li>
  26. <li class="scrollToLink">
  27. <a href="#calltoactionthree">导购驱动</a>
  28. </li> -->
  29. <li class="scrollToLink">
  30. <a href="#featurestwo">我们的服务</a>
  31. </li>
  32. <li class="scrollToLink">
  33. <a href="#counter">我们的客户</a>
  34. </li>
  35. <li class="scrollToLink">
  36. <a href="#pricing">我们的方式</a>
  37. </li>
  38. </ul>
  39. </div><!-- /.navbar-collapse -->
  40. <div class="right-side-box">
  41. <a class="thm-btn header__cta-btn" href="#lxfs"><span>联系我们</span></a>
  42. </div><!-- /.right-side-box -->
  43. </div>
  44. <!-- /.container -->
  45. </nav>
  46. </header>
  47. </template>
  48. <script>
  49. export default {
  50. name: "Header",
  51. mounted() {
  52. // sticky menu
  53. $(window).on('scroll', function () {
  54. // checks if window is scrolled more than 500px, adds/removes solid class
  55. if ($(this).scrollTop() > 60) {
  56. $('.stricky').addClass('original');
  57. $('.stricky').addClass('stricked-menu');
  58. } else {
  59. $('.navbar').removeClass('original');
  60. $('.stricky').removeClass('stricked-menu');
  61. }
  62. });
  63. if ($('.main-navigation .navigation-box').length) {
  64. var subMenu = $('.main-navigation .sub-menu');
  65. subMenu.parent('li').children('a').append(function() {
  66. return '<button class="sub-nav-toggler"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>';
  67. });
  68. var mainNavToggler = $('.header-navigation .menu-toggler');
  69. var subNavToggler = $('.main-navigation .sub-nav-toggler');
  70. mainNavToggler.on('click', function() {
  71. var Self = $(this);
  72. var menu = Self.data('target');
  73. $(menu).slideToggle();
  74. $(menu).toggleClass('showen');
  75. return false;
  76. });
  77. subNavToggler.on('click', function() {
  78. var Self = $(this);
  79. Self.parent().parent().children('.sub-menu').slideToggle();
  80. return false;
  81. });
  82. }
  83. if ($('.scroll-to-target').length) {
  84. $(".scroll-to-target").on('click', function() {
  85. var target = $(this).attr('data-target');
  86. // animate
  87. $('html, body').animate({
  88. scrollTop: $(target).offset().top
  89. }, 1000);
  90. return false;
  91. });
  92. }
  93. function SmoothMenuScroll() {
  94. var anchor = $('.scrollToLink');
  95. if (anchor.length) {
  96. anchor.children('a').bind('click', function(event) {
  97. if ($(window).scrollTop() > 10) {
  98. var headerH = '67';
  99. } else {
  100. var headerH = '100';
  101. }
  102. var target = $(this);
  103. $('html, body').stop().animate({
  104. scrollTop: $(target.attr('href')).offset().top - headerH + 'px'
  105. }, 1200, 'easeInOutExpo');
  106. anchor.removeClass('current');
  107. target.parent().addClass('current');
  108. event.preventDefault();
  109. });
  110. }
  111. }
  112. SmoothMenuScroll();
  113. function OnePageMenuScroll() {
  114. var windscroll = $(window).scrollTop();
  115. if (windscroll >= 100) {
  116. var menuAnchor = $('.one-page-scroll-menu .scrollToLink').children('a');
  117. menuAnchor.each(function() {
  118. // grabing section id dynamically
  119. var sections = $(this).attr('href');
  120. $(sections).each(function() {
  121. // checking is scroll bar are in section
  122. if ($(this).offset().top <= windscroll + 100) {
  123. // grabing the dynamic id of section
  124. var Sectionid = $(sections).attr('id');
  125. // removing current class from others
  126. $('.one-page-scroll-menu').find('li').removeClass('current');
  127. // adding current class to related navigation
  128. $('.one-page-scroll-menu').find('a[href*=\\#' + Sectionid + ']').parent().addClass('current');
  129. }
  130. });
  131. });
  132. } else {
  133. $('.one-page-scroll-menu li.current').removeClass('current');
  134. $('.one-page-scroll-menu li:first').addClass('current');
  135. }
  136. }
  137. if ($('.side-menu__toggler').length) {
  138. $('.side-menu__toggler').on('click', function(e) {
  139. $('.side-menu__block').addClass('active');
  140. e.preventDefault();
  141. });
  142. }
  143. if ($('.side-menu__block-overlay').length) {
  144. $('.side-menu__block-overlay').on('click', function(e) {
  145. $('.side-menu__block').removeClass('active');
  146. e.preventDefault();
  147. });
  148. }
  149. $(window).on('scroll', function() {
  150. if ($('.stricked-menu').length) {
  151. var headerScrollPos = 100;
  152. var stricky = $('.stricked-menu');
  153. if ($(window).scrollTop() > headerScrollPos) {
  154. stricky.addClass('stricky-fixed');
  155. } else if ($(this).scrollTop() <= headerScrollPos) {
  156. stricky.removeClass('stricky-fixed');
  157. }
  158. }
  159. OnePageMenuScroll();
  160. });
  161. }
  162. }
  163. </script>
  164. <style scoped>
  165. </style>