/** * HSCore - * * @author HtmlStream * @version 1.0 */ ; (function ($) { 'use strict'; $.HSCore = { /** * * * @param * * @return */ init: function () { $(document).ready(function (e) { // Botostrap Tootltips $('[data-toggle="tooltip"]').tooltip(); // Bootstrap Popovers $('[data-toggle="popover"]').popover(); // Detect Internet Explorer (IE) $.HSCore.helpers.detectIE(); // Bootstrap Navigation Options $.HSCore.helpers.bootstrapNavOptions.init(); }); }, /** * * * @var */ components: {}, /** * * * @var */ helpers: { Math: { getRandomValueFromRange: function(startPoint, endPoint, fixed) { var fixedInner = fixed ? fixed : false; Math.random(); return fixedInner ? (Math.random() * (endPoint - startPoint) + startPoint) : (Math.floor(Math.random() * (endPoint - startPoint + 1)) + startPoint); } }, /** * Detect Internet Explorer (IE) * * @return version of IE or false, if browser is not Internet Explorer */ detectIE: function() { var ua = window.navigator.userAgent; var trident = ua.indexOf('Trident/'); if (trident > 0) { // IE 11 => return version number var rv = ua.indexOf('rv:'); var ieV = parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); document.querySelector('body').className += ' IE'; } var edge = ua.indexOf('Edge/'); if (edge > 0) { // IE 12 (aka Edge) => return version number var ieV = parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10); document.querySelector('body').className += ' IE'; } // other browser return false; }, /** * Bootstrap navigation options * */ bootstrapNavOptions: { init: function () { this.mobileHideOnScroll(); }, mobileHideOnScroll: function () { var $collection = $('.navbar'); if (!$collection.length) return; var $w = $(window), breakpointsMap = { 'sm': 576, 'md': 768, 'lg': 992, 'xl': 1200 }; $('body').on('click.HSMobileHideOnScroll', '.navbar-toggler', function (e) { var $navbar = $(this).closest('.navbar'); if ($navbar.length) { $navbar.data('mobile-menu-scroll-position', $w.scrollTop()); } e.preventDefault(); }); $w.on('scroll.HSMobileHideOnScroll', function (e) { $collection.each(function (i, el) { var $this = $(el), $toggler, $nav, offset, $hamburgers, breakpoint; if ($this.hasClass('navbar-expand-xl')) breakpoint = breakpointsMap['xl']; else if ($this.hasClass('navbar-expand-lg')) breakpoint = breakpointsMap['lg']; else if ($this.hasClass('navbar-expand-md')) breakpoint = breakpointsMap['md']; else if ($this.hasClass('navbar-expand-xs')) breakpoint = breakpointsMap['xs']; if ($w.width() > breakpoint) return; $toggler = $this.find('.navbar-toggler'); $nav = $this.find('.navbar-collapse'); if (!$nav.data('mobile-scroll-hide')) return; if ($nav.length) { offset = $this.data('mobile-menu-scroll-position'); if (Math.abs($w.scrollTop() - offset) > 40 && $nav.hasClass('show')) { $toggler.trigger('click'); $hamburgers = $toggler.find('.is-active'); if ($hamburgers.length) { $hamburgers.removeClass('is-active'); } } } }); }); } } }, /** * * * @var */ settings: { rtl: false } }; $.HSCore.init(); })(jQuery);