HeaderTwo.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <template>
  2. <header class="site-header site-header__header-one site-header__header-two">
  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-light.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><!-- /.logo-box -->
  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="#">Home</a>
  19. <ul class="sub-menu">
  20. <li><a href="/">Home 01</a></li>
  21. <li><a href="/index-2">Home 02</a></li>
  22. </ul><!-- /.sub-menu -->
  23. </li>
  24. <li class="scrollToLink">
  25. <a href="#features">Features</a>
  26. </li>
  27. <li class="scrollToLink">
  28. <a href="#video">Video</a>
  29. </li>
  30. <li class="scrollToLink">
  31. <a href="#pricing">Pricing</a>
  32. </li>
  33. <li class="scrollToLink">
  34. <a href="#screenshots">App Screenshots</a>
  35. </li>
  36. <li class="scrollToLink">
  37. <a href="#news">News</a>
  38. <ul class="sub-menu">
  39. <li><nuxt-link to="/blog">News Page</nuxt-link></li>
  40. <li><nuxt-link to="/blog-details">News Details</nuxt-link></li>
  41. </ul><!-- /.sub-menu -->
  42. </li>
  43. </ul>
  44. </div><!-- /.navbar-collapse -->
  45. <div class="right-side-box">
  46. <a class="thm-btn header__cta-btn" href="#"><span>Login</span></a>
  47. </div><!-- /.right-side-box -->
  48. </div>
  49. <!-- /.container -->
  50. </nav>
  51. </header>
  52. </template>
  53. <script>
  54. export default {
  55. name: "Header",
  56. mounted() {
  57. // sticky menu
  58. $(window).on('scroll', function () {
  59. // checks if window is scrolled more than 500px, adds/removes solid class
  60. if ($(this).scrollTop() > 60) {
  61. $('.stricky').addClass('original');
  62. $('.stricky').addClass('stricked-menu');
  63. } else {
  64. $('.navbar').removeClass('original');
  65. $('.stricky').removeClass('stricked-menu');
  66. }
  67. });
  68. if ($('.main-navigation .navigation-box').length) {
  69. var subMenu = $('.main-navigation .sub-menu');
  70. subMenu.parent('li').children('a').append(function() {
  71. 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>';
  72. });
  73. var mainNavToggler = $('.header-navigation .menu-toggler');
  74. var subNavToggler = $('.main-navigation .sub-nav-toggler');
  75. mainNavToggler.on('click', function() {
  76. var Self = $(this);
  77. var menu = Self.data('target');
  78. $(menu).slideToggle();
  79. $(menu).toggleClass('showen');
  80. return false;
  81. });
  82. subNavToggler.on('click', function() {
  83. var Self = $(this);
  84. Self.parent().parent().children('.sub-menu').slideToggle();
  85. return false;
  86. });
  87. }
  88. if ($('.scroll-to-target').length) {
  89. $(".scroll-to-target").on('click', function() {
  90. var target = $(this).attr('data-target');
  91. // animate
  92. $('html, body').animate({
  93. scrollTop: $(target).offset().top
  94. }, 1000);
  95. return false;
  96. });
  97. }
  98. function SmoothMenuScroll() {
  99. var anchor = $('.scrollToLink');
  100. if (anchor.length) {
  101. anchor.children('a').bind('click', function(event) {
  102. if ($(window).scrollTop() > 10) {
  103. var headerH = '67';
  104. } else {
  105. var headerH = '100';
  106. }
  107. var target = $(this);
  108. $('html, body').stop().animate({
  109. scrollTop: $(target.attr('href')).offset().top - headerH + 'px'
  110. }, 1200, 'easeInOutExpo');
  111. anchor.removeClass('current');
  112. target.parent().addClass('current');
  113. event.preventDefault();
  114. });
  115. }
  116. }
  117. SmoothMenuScroll();
  118. function OnePageMenuScroll() {
  119. var windscroll = $(window).scrollTop();
  120. if (windscroll >= 100) {
  121. var menuAnchor = $('.one-page-scroll-menu .scrollToLink').children('a');
  122. menuAnchor.each(function() {
  123. // grabing section id dynamically
  124. var sections = $(this).attr('href');
  125. $(sections).each(function() {
  126. // checking is scroll bar are in section
  127. if ($(this).offset().top <= windscroll + 100) {
  128. // grabing the dynamic id of section
  129. var Sectionid = $(sections).attr('id');
  130. // removing current class from others
  131. $('.one-page-scroll-menu').find('li').removeClass('current');
  132. // adding current class to related navigation
  133. $('.one-page-scroll-menu').find('a[href*=\\#' + Sectionid + ']').parent().addClass('current');
  134. }
  135. });
  136. });
  137. } else {
  138. $('.one-page-scroll-menu li.current').removeClass('current');
  139. $('.one-page-scroll-menu li:first').addClass('current');
  140. }
  141. }
  142. if ($('.side-menu__toggler').length) {
  143. $('.side-menu__toggler').on('click', function(e) {
  144. $('.side-menu__block').addClass('active');
  145. e.preventDefault();
  146. });
  147. }
  148. if ($('.side-menu__block-overlay').length) {
  149. $('.side-menu__block-overlay').on('click', function(e) {
  150. $('.side-menu__block').removeClass('active');
  151. e.preventDefault();
  152. });
  153. }
  154. $(window).on('scroll', function() {
  155. if ($('.stricked-menu').length) {
  156. var headerScrollPos = 100;
  157. var stricky = $('.stricked-menu');
  158. if ($(window).scrollTop() > headerScrollPos) {
  159. stricky.addClass('stricky-fixed');
  160. } else if ($(this).scrollTop() <= headerScrollPos) {
  161. stricky.removeClass('stricky-fixed');
  162. }
  163. }
  164. OnePageMenuScroll();
  165. });
  166. }
  167. }
  168. </script>
  169. <style scoped>
  170. </style>