Header.vue 6.6 KB

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