1// ------------------------------------------------------------------------------ // 2// 3// Template name : Bootsnav - Multi Purpose Header 4// Categorie : Bootstrap Menu in CSS 5// Author : adamnurdin01 6// Version : v.1.2 7// Created : 2016-06-02 8// Last update : 2016-10-19 9// 10// ------------------------------------------------------------------------------ // 11 12(function ($) { 13 "use strict"; 14 15 var bootsnav = { 16 initialize: function () { 17 this.event(); 18 this.hoverDropdown(); 19 this.navbarSticky(); 20 this.navbarScrollspy(); 21 }, 22 event: function () { 23 // ------------------------------------------------------------------------------ // 24 // Variable 25 // ------------------------------------------------------------------------------ // 26 var getNav = $("nav.navbar.bootsnav"); 27 28 // ------------------------------------------------------------------------------ // 29 // Navbar Sticky 30 // ------------------------------------------------------------------------------ // 31 var navSticky = getNav.hasClass("navbar-sticky"); 32 if (navSticky) { 33 // Wraped navigation 34 getNav.wrap("<div class='wrap-sticky'></div>"); 35 } 36 37 // ------------------------------------------------------------------------------ // 38 // Navbar Center 39 // ------------------------------------------------------------------------------ // 40 if (getNav.hasClass("brand-center")) { 41 var postsArr = new Array(), 42 index = $("nav.brand-center"), 43 $postsList = index.find("ul.navbar-nav"); 44 45 index.prepend( 46 "<span class='storage-name' style='display:none;'></span>" 47 ); 48 49 //Create array of all posts in lists 50 index.find("ul.navbar-nav > li").each(function () { 51 if ($(this).hasClass("active")) { 52 var getElement = $("a", this).eq(0).text(); 53 $(".storage-name").html(getElement); 54 } 55 postsArr.push($(this).html()); 56 }); 57 58 //Split the array at this point. The original array is altered. 59 var firstList = postsArr.splice( 60 0, 61 Math.round(postsArr.length / 2) 62 ), 63 secondList = postsArr, 64 ListHTML = ""; 65 66 var createHTML = function (list) { 67 ListHTML = ""; 68 for (var i = 0; i < list.length; i++) { 69 ListHTML += "<li>" + list[i] + "</li>"; 70 } 71 }; 72 73 //Generate HTML for first list 74 createHTML(firstList); 75 $postsList.html(ListHTML); 76 index.find("ul.nav").first().addClass("navbar-left"); 77 78 //Generate HTML for second list 79 createHTML(secondList); 80 //Create new list after original one 81 $postsList 82 .after('<ul class="nav navbar-nav"></ul>') 83 .next() 84 .html(ListHTML); 85 index.find("ul.nav").last().addClass("navbar-right"); 86 87 //Wrap navigation menu 88 index 89 .find("ul.nav.navbar-left") 90 .wrap("<div class='col-half left'></div>"); 91 index 92 .find("ul.nav.navbar-right") 93 .wrap("<div class='col-half right'></div>"); 94 95 //Selection Class 96 index.find("ul.navbar-nav > li").each(function () { 97 var dropDown = $("ul.dropdown-menu", this), 98 //added for center logo header 99 simpleMenu = $("ul.simple-dropdown", this), 100 megaMenu = $("ul.megamenu-content", this); 101 dropDown.closest("li").addClass("dropdown"); 102 simpleMenu.closest("li").addClass("simple-dropdown"); 103 megaMenu.closest("li").addClass("megamenu-fw"); 104 }); 105 106 var getName = $(".storage-name").html(); 107 if (!getName == "") { 108 $( 109 "ul.navbar-nav > li:contains('" + getName + "')" 110 ).addClass("active"); 111 } 112 } 113 114 // ------------------------------------------------------------------------------ // 115 // Navbar Sidebar 116 // ------------------------------------------------------------------------------ // 117 if (getNav.hasClass("navbar-sidebar")) { 118 // Add Class to body 119 $("body").addClass("wrap-nav-sidebar"); 120 getNav.wrapInner("<div class='scroller'></div>"); 121 } else { 122 $(".bootsnav").addClass("on"); 123 } 124 125 // ------------------------------------------------------------------------------ // 126 // Menu Center 127 // ------------------------------------------------------------------------------ // 128 if (getNav.find("ul.nav").hasClass("navbar-center")) { 129 getNav.addClass("menu-center"); 130 } 131 132 // ------------------------------------------------------------------------------ // 133 // Navbar Full 134 // ------------------------------------------------------------------------------ // 135 if (getNav.hasClass("navbar-full")) { 136 // Add Class to body 137 $("nav.navbar.bootsnav") 138 .find("ul.nav") 139 .wrap("<div class='wrap-full-menu'></div>"); 140 $(".wrap-full-menu").wrap("<div class='nav-full'></div>"); 141 $("ul.nav.navbar-nav").prepend( 142 "<li class='close-full-menu'><a href='#'><i class='fa fa-times'></i></a></li>" 143 ); 144 } else if (getNav.hasClass("navbar-mobile")) { 145 getNav.removeClass("no-full"); 146 } else { 147 getNav.addClass("no-full"); 148 } 149 150 // ------------------------------------------------------------------------------ // 151 // Navbar Mobile 152 // ------------------------------------------------------------------------------ // 153 if (getNav.hasClass("navbar-mobile")) { 154 // Add Class to body 155 $(".navbar-collapse").on("shown.bs.collapse", function () { 156 $("body").addClass("side-right"); 157 }); 158 $(".navbar-collapse").on("hide.bs.collapse", function () { 159 $("body").removeClass("side-right"); 160 }); 161 162 $(window).on("resize", function () { 163 $("body").removeClass("side-right"); 164 }); 165 } 166 167 // ------------------------------------------------------------------------------ // 168 // Navbar Fixed 169 // ------------------------------------------------------------------------------ // 170 if (getNav.hasClass("no-background")) { 171 $(window).on("scroll", function () { 172 var scrollTop = $(window).scrollTop(); 173 if (scrollTop > 34) { 174 $(".navbar-fixed").removeClass("no-background"); 175 } else { 176 $(".navbar-fixed").addClass("no-background"); 177 } 178 }); 179 } 180 181 // ------------------------------------------------------------------------------ // 182 // Navbar Fixed 183 // ------------------------------------------------------------------------------ // 184 if (getNav.hasClass("navbar-transparent")) { 185 $(window).on("scroll", function () { 186 var scrollTop = $(window).scrollTop(); 187 if (scrollTop > 34) { 188 $(".navbar-fixed").removeClass("navbar-transparent"); 189 } else { 190 $(".navbar-fixed").addClass("navbar-transparent"); 191 } 192 }); 193 } 194 195 // ------------------------------------------------------------------------------ // 196 // Button Cart 197 // ------------------------------------------------------------------------------ // 198 $(".btn-cart").on("click", function (e) { 199 e.stopPropagation(); 200 }); 201 202 // ------------------------------------------------------------------------------ // 203 // Toggle Search 204 // ------------------------------------------------------------------------------ // 205 $("nav.navbar.bootsnav .attr-nav").each(function () { 206 $("li.search > a", this).on("click", function (e) { 207 e.preventDefault(); 208 $(".top-search").slideToggle(); 209 }); 210 }); 211 $(".input-group-addon.close-search").on("click", function () {
212 $(".top-search").slideUp(); 213 }); 214 215 // ------------------------------------------------------------------------------ // 216 // Toggle Side Menu 217 // ------------------------------------------------------------------------------ // 218 $("nav.navbar.bootsnav .attr-nav").each(function () { 219 $("li.side-menu > a", this).on("click", function (e) { 220 e.preventDefault(); 221 $("nav.navbar.bootsnav > .side").toggleClass("on"); 222 $("body").toggleClass("on-side"); 223 }); 224 }); 225 $(".side .close-side").on("click", function (e) { 226 e.preventDefault(); 227 $("nav.navbar.bootsnav > .side").removeClass("on"); 228 $("body").removeClass("on-side"); 229 }); 230 231 // ------------------------------------------------------------------------------ // 232 // Wrapper 233 // ------------------------------------------------------------------------------ // 234 //$("body").wrapInner("<div class='wrapper'></div>"); 235 }, 236 // ------------------------------------------------------------------------------ // 237 // Change dropdown to hover on dekstop 238 // ------------------------------------------------------------------------------ // 239 hoverDropdown: function () { 240 var getNav = $("nav.navbar.bootsnav"), 241 getWindow = $(window).width(), 242 getHeight = $(window).height(), 243 getIn = getNav.find("ul.nav").data("in"), 244 getOut = getNav.find("ul.nav").data("out"); 245 246 if (getWindow < 991) { 247 // Height of scroll navigation sidebar 248 $(".scroller").css("height", "auto"); 249 250 // Disable mouseenter event 251 $("nav.navbar.bootsnav ul.nav") 252 .find("li.dropdown") 253 .off("mouseenter"); 254 $("nav.navbar.bootsnav ul.nav") 255 .find("li.dropdown") 256 .off("mouseleave"); 257 $("nav.navbar.bootsnav ul.nav") 258 .find(".title") 259 .off("mouseenter"); 260 $("nav.navbar.bootsnav ul.nav").off("mouseleave"); 261 $(".navbar-collapse").removeClass("animated"); 262 263 // Enable click event 264 $("nav.navbar.bootsnav ul.nav").each(function () { 265 $(".dropdown-menu", this).addClass("animated"); 266 $(".dropdown-menu", this).removeClass(getOut); 267 268 // Dropdown Fade Toggle 269 $("a.dropdown-toggle", this).off("click"); 270 $("a.dropdown-toggle", this).on("click", function (e) { 271 e.stopPropagation(); 272 $(this) 273 .closest("li.dropdown") 274 .find(".dropdown-menu") 275 .first() 276 .stop() 277 .fadeToggle() 278 .toggleClass(getIn); 279 $(this) 280 .closest("li.dropdown") 281 .first() 282 .toggleClass("on"); 283 return true; 284 }); 285 286 // Hidden dropdown action 287 $("li.dropdown", this).each(function () { 288 $(this).find(".dropdown-menu").stop().fadeOut("fast"); 289 $(this).on("hidden.bs.dropdown", function () { 290 $(this) 291 .find(".dropdown-menu") 292 .stop() 293 .fadeOut("fast"); 294 }); 295 return false; 296 }); 297 298 // Megamenu style 299 $(".megamenu-fw", this).each(function () { 300 $(".col-menu", this).each(function () { 301 $(".content", this).addClass("animated"); 302 $(".content", this).stop().fadeOut(); 303 $(".title", this).off("click"); 304 $(".title", this).on("click", function () { 305 $(this) 306 .closest(".col-menu") 307 .find(".content") 308 .stop() 309 .fadeToggle("fast") 310 .addClass(getIn); 311 $(this).closest(".col-menu").toggleClass("on"); 312 return false;
313 }); 314 315 $(".content", this).on("click", function (e) { 316 e.stopPropagation(); 317 }); 318 }); 319 }); 320 }); 321 322 // Hidden dropdown 323 var cleanOpen = function () { 324 $("li.dropdown", this).removeClass("on"); 325 $(".dropdown-menu", this).stop().fadeOut("fast"); 326 $(".dropdown-menu", this).removeClass(getIn); 327 $(".col-menu", this).removeClass("on"); 328 $(".col-menu .content", this).stop().fadeOut("fast"); 329 $(".col-menu .content", this).removeClass(getIn); 330 }; 331 332 // Hidden om mouse leave 333 $("nav.navbar.bootsnav").on("mouseleave", function () { 334 cleanOpen(); 335 }); 336 337 // Enable click atribute navigation 338 $("nav.navbar.bootsnav .attr-nav").each(function () { 339 $(".dropdown-menu", this).removeClass("animated"); 340 $("li.dropdown", this).off("mouseenter"); 341 $("li.dropdown", this).off("mouseleave"); 342 $("a.dropdown-toggle", this).off("click"); 343 $("a.dropdown-toggle", this).on("click", function (e) { 344 e.stopPropagation(); 345 $(this) 346 .closest("li.dropdown") 347 .find(".dropdown-menu") 348 .first() 349 .stop() 350 .fadeToggle(); 351 $(".navbar-toggle").each(function () { 352 $(".fa", this).removeClass("fa-times"); 353 $(".fa", this).addClass("fa-bars"); 354 $(".navbar-collapse").removeClass("in"); 355 $(".navbar-collapse").removeClass("on"); 356 }); 357 }); 358 359 $(this).on("mouseleave", function () { 360 $(".dropdown-menu", this).stop().fadeOut(); 361 $("li.dropdown", this).removeClass("on"); 362 return false; 363 }); 364 }); 365 366 // Toggle Bars 367 $(".navbar-toggle").each(function () { 368 $(this).off("click"); 369 $(this).on("click", function () { 370 $(".fa", this).toggleClass("fa-bars"); 371 $(".fa", this).toggleClass("fa-times"); 372 cleanOpen(); 373 }); 374 }); 375 } else if (getWindow > 991) { 376 // Height of scroll navigation sidebar 377 $(".scroller").css("height", getHeight + "px"); 378 379 // Navbar Sidebar 380 if (getNav.hasClass("navbar-sidebar")) { 381 // Hover effect Sidebar Menu 382 $("nav.navbar.bootsnav ul.nav").each(function () { 383 $("a.dropdown-toggle", this).off("click"); 384 $("a.dropdown-toggle", this).on("click", function (e) { 385 e.stopPropagation(); 386 }); 387 388 $(".dropdown-menu", this).addClass("animated"); 389 $("li.dropdown", this).on("mouseenter", function () { 390 $(".dropdown-menu", this).eq(0).removeClass(getOut); 391 $(".dropdown-menu", this) 392 .eq(0) 393 .stop() 394 .fadeIn("fast") 395 .addClass(getIn); 396 $(this).addClass("on"); 397 return false; 398 }); 399 400 $(".col-menu").each(function () { 401 $(".content", this).addClass("animated"); 402 $(".title", this).on("mouseenter", function () { 403 $(this) 404 .closest(".col-menu") 405 .find(".content") 406 .stop() 407 .fadeIn("fast") 408 .addClass(getIn); 409 $(this).closest(".col-menu").addClass("on"); 410 return false;
411 }); 412 }); 413 414 $(this).on("mouseleave", function () { 415 $(".dropdown-menu", this).stop().removeClass(getIn); 416 $(".dropdown-menu", this) 417 .stop() 418 .addClass(getOut) 419 .fadeOut("fast"); 420 $(".col-menu", this) 421 .find(".content") 422 .stop() 423 .fadeOut("fast") 424 .removeClass(getIn); 425 $(".col-menu", this).removeClass("on"); 426 $("li.dropdown", this).removeClass("on"); 427 return false; 428 }); 429 }); 430 } else { 431 var isSafari = !!navigator.userAgent.match( 432 /Version\/[\d\.]+.*Safari/ 433 ); 434 435 // Hover effect Default Menu 436 $("nav.navbar.bootsnav ul.nav").each(function () { 437 $("a.dropdown-toggle", this).off("click"); 438 $("a.dropdown-toggle", this).on("click", function (e) { 439 e.stopPropagation(); 440 }); 441 442 $(".megamenu-fw", this).each(function () { 443 $(".title", this).off("click"); 444 $("a.dropdown-toggle", this).off("click"); 445 $(".content").removeClass("animated"); 446 }); 447 448 $(".dropdown-menu", this).addClass("animated"); 449 450 // user hover on single menu then hide its sibling children menu 451 if ( 452 $(".navbar-left-sidebar").length > 0 || 453 $(".left-nav-sidebar").length > 0 454 ) { 455 $("li:not(.dropdown)", this).on( 456 "mouseenter", 457 function () { 458 $(this) 459 .parent() 460 .find(".dropdown-menu") 461 .stop() 462 .fadeOut("fast"); 463 } 464 ); 465 466 $(document).on( 467 "click", 468 ".side-left-menu-close.active", 469 function (e) { 470 $(this).removeClass("active"); 471 } 472 ); 473 } 474 475 $("li.dropdown", this).on("mouseenter", function () { 476 var _this = this; 477 478 $(".side-left-menu-close").addClass("active"); 479 480 if ( 481 $(".navbar-left-sidebar").length > 0 || 482 $(".left-nav-sidebar").length > 0 483 ) { 484 $(this) 485 .parent() 486 .find(".dropdown") 487 .removeClass("on"); 488 if ( 489 $(this).parents(".dropdown-menu").length > 0 490 ) { 491 // child 492 $(this) 493 .parents(".dropdown-menu") 494 .find(".dropdown-menu") 495 .not($(".dropdown-menu", this)) 496 .stop() 497 .fadeOut("fast"); 498 } else { 499 // main 500 $(this) 501 .parents(".bootsnav .nav") 502 .find(".dropdown-menu") 503 .not($(".dropdown-menu", this)) 504 .stop() 505 .fadeOut("fast"); 506 $(":not(.second-level)", this) 507 .find(".third-level") 508 .stop() 509 .fadeOut("fast"); 510 } 511 512 if ($(this).parent().hasClass("second-level")) { 513 $(this) 514 .parents(".navbar-nav") 515 .addClass("enter"); 516 } else if ($(this).parent().hasClass("enter")) { 517 $(".navbar-nav").removeClass("enter"); 518 } 519 } 520 521 $(".dropdown-menu", this).eq(0).removeClass(getOut); 522 if (isSafari) 523 $(".dropdown-menu", _this) 524 .eq(0) 525 .stop() 526 .fadeIn("fast") 527 .addClass(getIn); 528 else 529 $(".dropdown-menu", _this) 530 .eq(0) 531 .stop() 532 .fadeIn("fast") 533 .addClass(getIn); 534 $(this).addClass("on"); 535 536 if ( 537 $(".navbar-left-sidebar").length > 0 || 538 $(".left-nav-sidebar").length > 0 539 ) { 540 if ($(".left-nav-sidebar").length > 0) { 541 var menu_width = 542 $(".sidebar-part1").outerWidth(); 543 menu_width = menu_width + 20; 544 menu_width = 545 menu_width + 546 $( 547 ".left-nav-on .navbar-nav" 548 ).outerWidth(); 549 } else { 550 var menu_width = 551 $(".navbar-nav").outerWidth(); 552 } 553 554 var mainWidth = $(window).width(); 555 setTimeout(function () { 556 $(".dropdown").each(function () { 557 if ($(this).hasClass("on")) { 558 menu_width = 559 menu_width + 560 $( 561 ".dropdown-menu li", 562 this 563 ).outerWidth(); 564 } 565 }); 566 $(".side-left-menu-close").width( 567 mainWidth - menu_width 568 ); 569 }, 300); 570 } 571 return false;
572 }); 573 574 $("li.dropdown", this).on("mouseleave", function () { 575 $(".dropdown-menu", this).eq(0).removeClass(getIn); 576 577 if ( 578 $(".dropdown-menu", this).css("display") == 579 "none" || 580 !( 581 $(".navbar-left-sidebar").length > 0 || 582 $(".left-nav-sidebar").length > 0 583 ) || 584 $(this) 585 .parents(".bootsnav .nav") 586 .hasClass("enter") 587 ) { 588 if (isSafari) 589 $(".dropdown-menu", this) 590 .eq(0) 591 .stop() 592 .fadeOut("fast") 593 .addClass(getOut); 594 else 595 $(".dropdown-menu", this) 596 .eq(0) 597 .stop() 598 .fadeOut("fast") 599 .addClass(getOut); 600 601 $(this).removeClass("on"); 602 } 603 604 if ( 605 $(".navbar-left-sidebar").length > 0 || 606 $(".left-nav-sidebar").length > 0 607 ) { 608 $(".side-left-menu-close").addClass("active"); 609 610 if ($(".left-nav-sidebar").length > 0) { 611 var menu_width = 612 $(".sidebar-part1").outerWidth(); 613 menu_width = menu_width + 20; 614 menu_width = 615 menu_width + 616 $( 617 ".left-nav-on .navbar-nav" 618 ).outerWidth(); 619 } else { 620 var menu_width = 621 $(".navbar-nav").outerWidth(); 622 } 623 624 var mainWidth = $(window).width(); 625 setTimeout(function () { 626 $(".dropdown").each(function () { 627 if ($(this).hasClass("on")) { 628 menu_width = 629 menu_width + 630 $( 631 ".dropdown-menu li", 632 this 633 ).outerWidth(); 634 } 635 }); 636 $(".side-left-menu-close").width( 637 mainWidth - menu_width 638 ); 639 }, 300); 640 } 641 }); 642 643 $(this).on("mouseleave", function () { 644 $(".dropdown-menu", this).removeClass(getIn); 645 $(".side-left-menu-close").removeClass("active"); 646 647 if (isSafari) 648 $(".dropdown-menu", this) 649 .eq(0) 650 .stop() 651 .fadeOut("fast") 652 .addClass(getOut); 653 else 654 $(".dropdown-menu", this) 655 .eq(0) 656 .stop() 657 .fadeOut("fast") 658 .addClass(getOut); 659 $("li.dropdown", this).removeClass("on"); 660 661 if ( 662 $(".navbar-left-sidebar").length > 0 || 663 $(".left-nav-sidebar").length > 0 664 ) { 665 if ($(".bootsnav .nav").hasClass("enter")) { 666 $(".bootsnav .nav").removeClass("enter"); 667 } else { 668 $(".bootsnav .nav") 669 .find(".dropdown-menu") 670 .fadeOut("fast"); 671 } 672 } 673 674 return false;
675 }); 676 }); 677 } 678 679 // ------------------------------------------------------------------------------ // 680 // Hover effect Atribute Navigation 681 // ------------------------------------------------------------------------------ // 682 $("nav.navbar.bootsnav .attr-nav").each(function () { 683 $("a.dropdown-toggle", this).off("click"); 684 $("a.dropdown-toggle", this).on("click", function (e) { 685 e.stopPropagation(); 686 }); 687 688 $(".dropdown-menu", this).addClass("animated"); 689 $("li.dropdown", this).on("mouseenter", function () { 690 $(".dropdown-menu", this).eq(0).removeClass(getOut); 691 $(".dropdown-menu", this) 692 .eq(0) 693 .stop() 694 .fadeIn("fast") 695 .addClass(getIn); 696 $(this).addClass("on"); 697 return false; 698 }); 699 700 $("li.dropdown", this).on("mouseleave", function () { 701 $(".dropdown-menu", this).eq(0).removeClass(getIn); 702 $(".dropdown-menu", this) 703 .eq(0) 704 .stop() 705 .fadeOut("fast") 706 .addClass(getOut); 707 $(this).removeClass("on"); 708 }); 709 710 $(this).on("mouseleave", function () { 711 $(".dropdown-menu", this).removeClass(getIn); 712 $(".dropdown-menu", this) 713 .eq(0) 714 .stop() 715 .fadeOut("fast") 716 .addClass(getOut); 717 $("li.dropdown", this).removeClass("on"); 718 return false; 719 }); 720 }); 721 } 722 723 // ------------------------------------------------------------------------------ // 724 // Menu Fullscreen 725 // ------------------------------------------------------------------------------ // 726 if (getNav.hasClass("navbar-full")) { 727 var windowHeight = $(window).height(), 728 windowWidth = $(window).width(); 729 730 $(".nav-full").css("height", windowHeight + "px"); 731 $(".wrap-full-menu").css("height", windowHeight + "px"); 732 $(".wrap-full-menu").css("width", windowWidth + "px"); 733 734 $(".navbar-collapse").addClass("animated"); 735 $(".navbar-toggle").each(function () { 736 var getId = $(this).data("target"); 737 $(this).off("click"); 738 $(this).on("click", function (e) { 739 e.preventDefault(); 740 $(getId).removeClass(getOut); 741 $(getId).addClass("in"); 742 $(getId).addClass(getIn); 743 return false; 744 }); 745 746 $("li.close-full-menu").on("click", function (e) { 747 e.preventDefault(); 748 $(getId).addClass(getOut); 749 setTimeout(function () { 750 $(getId).removeClass("in"); 751 $(getId).removeClass(getIn); 752 }, 500); 753 return false; 754 }); 755 }); 756 } 757 }, 758 // ------------------------------------------------------------------------------ // 759 // Navbar Sticky 760 // ------------------------------------------------------------------------------ // 761 navbarSticky: function () { 762 var getNav = $("nav.navbar.bootsnav"), 763 navSticky = getNav.hasClass("navbar-sticky"); 764 765 if (navSticky) { 766 // Set Height Navigation 767 var getHeight = getNav.height();
768 $(".wrap-sticky").height(getHeight); 769 770 // Windown on scroll 771 var getOffset = $(".wrap-sticky").offset().top; 772 $(window).on("scroll", function () { 773 var scrollTop = $(window).scrollTop(); 774 if (scrollTop > getOffset) { 775 getNav.addClass("sticked"); 776 } else { 777 getNav.removeClass("sticked"); 778 } 779 }); 780 } 781 }, 782 // ------------------------------------------------------------------------------ // 783 // Navbar Scrollspy 784 // ------------------------------------------------------------------------------ // 785 navbarScrollspy: function () { 786 var navScrollSpy = $(".navbar-scrollspy"), 787 $body = $("body"), 788 getNav = $("nav.navbar.bootsnav"), 789 offset = getNav.outerHeight(); 790 791 if (navScrollSpy.length) { 792 $body.scrollspy({ target: ".navbar", offset: offset }); 793 794 // Animation Scrollspy 795 $(".scroll").on("click", function (event) { 796 event.preventDefault(); 797 798 // Active link 799 $(".scroll").removeClass("active"); 800 $(this).addClass("active"); 801 802 // Remove navbar collapse 803 $(".navbar-collapse").removeClass("in"); 804 805 // Toggle Bars 806 $(".navbar-toggle").each(function () { 807 $(".fa", this).removeClass("fa-times"); 808 $(".fa", this).addClass("fa-bars"); 809 }); 810 811 // Scroll 812 var scrollTop = $(window).scrollTop(), 813 $anchor = $(this).find("a"), 814 $section = $($anchor.attr("href")).offset().top, 815 $window = $(window).width(), 816 $minusDesktop = getNav.data("minus-value-desktop"), 817 $minusMobile = getNav.data("minus-value-mobile"), 818 $speed = getNav.data("speed"); 819 820 if ($window > 992) { 821 var $position = $section - $minusDesktop; 822 } else { 823 var $position = $section - $minusMobile; 824 } 825 826 $("html, body").stop().animate( 827 { 828 scrollTop: $position, 829 }, 830 $speed 831 ); 832 }); 833 834 // Activate Navigation 835 var fixSpy = function () { 836 var data = $body.data("bs.scrollspy"); 837 if (data) { 838 offset = getNav.outerHeight(); 839 data.options.offset = offset; 840 $body.data("bs.scrollspy", data); 841 $body.scrollspy("refresh"); 842 } 843 }; 844 845 // Activate Navigation on resize 846 var resizeTimer; 847 $(window).on("resize", function () { 848 clearTimeout(resizeTimer); 849 var resizeTimer = setTimeout(fixSpy, 200); 850 }); 851 } 852 }, 853 }; 854 855 // Initialize 856 $(document).ready(function () { 857 bootsnav.initialize(); 858 }); 859 860 // Reset on resize 861 $(window).on("resize", function () { 862 bootsnav.hoverDropdown(); 863 setTimeout(function () {
864 bootsnav.navbarSticky(); 865 }, 500); 866 867 // Toggle Bars 868 $(".navbar-toggle").each(function () { 869 $(".fa", this).removeClass("fa-times"); 870 $(".fa", this).addClass("fa-bars"); 871 $(this).removeClass("fixed"); 872 }); 873 $(".navbar-collapse").removeClass("in"); 874 $(".navbar-collapse").removeClass("on"); 875 $(".navbar-collapse").removeClass("bounceIn"); 876 }); 877})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.